HDwiki时间延迟盲注及利用代码

/* * by phithon
* http://www.leavesongs.com & http://xdsec.org
*/

    hdwiki某处对referer未做过滤,造成sql注入

    但因为没有输出点,只能做盲注。

    基于时间的盲注脚本已写好,测试可注入出“光明网百科”等百科网站的管理员密码md5值:
在文件/model/user.class.php 第41行add_referer函数:

直接将$_SERVER[‘HTTP_REFERER’]带入sql语句查询,产生注入。

在/control/user.php文件第108行,dologin函数中调用了add_referer:

所以只需要向/index.php?user-login提交POST数据包即可,将注入代码放在REFERER中。

利用思路有三:

01.因为是UPDATE语句,可以直接修改session表,将用户相关权限修改。但后台权限验证在user表中,所以暂时我没找到可利用的方法。

02.报错注入。但此处执行函数query中,默认是不显示报错信息的,所以也无法利用。

03.sql盲注,可写一个基于时间的SQL盲注脚本,跑跑管理员的密码。但缺点很明显,因为受到网速的限制(与一些不可预测因素限制),我在本地测试的盲注是可以注入获得正确md5的,但我注入一些网站的时候注入出的md5可能解不出来,也可能有一些偏差。但不可否认的是可以注入获得管理员md5.

SQL盲注代码:

本脚本依赖python的requests库,该库能使python方便地进行http操作,不安装该脚本会出错。官网地址:http://www.python-requests.org/

使用脚本前首先注册一枚账号,在用户信息页面获得你的uid,填入上方”uid=”处。因为为了不破坏session表中其他用户字段信息,所以在注入的时候写了一个where从句,所以需要一个uid。

而且,当session表不存在字段时,也是不能update的,所以注册一个用户,该表就至少有一个字段

当然实际上该盲注是不需要有用户权限的。

建议测试的时候先在本地测试,此时网速对延时盲注的影响较小,我测试的时候基本没有出现错误,注入获得的md5都能解出正确明文。

原文链接:,转发请注明来源!

发表评论

要发表评论,您必须先登录