利用MYSQL监控快速挖掘PHP注射漏洞

967291558

利用工具:cnseay源代码审计工具

或者单纯MYSQL监控也行,这个是乌云社区提取出来的

下载地址:http://my-files.ru/q2bqy9 解压密码:wooyun

使用方法很简单,网上随便下一套程序,这里我用imgcms作为演示

下载地址:http://down.chinaz.com/soft/36325.htm

搭建好程序以后,打开监控软件,连接上去

1

然后打开网站首页 看看网站首页有哪些内容或者参数是我们可控的

2

aaaa是我刚刚自己添加的(垃圾程序,演示数据都没)

根据程序界面初步作出判断,可控点为:文章参数ID、搜索、栏目ID

我们打开文章然后在刷新一下监控看看

3

可以看到 当我们打开index-id-1.html的文章时 监控中出现了一条SQL语句信息:

看的出来是伪静态 经过select 文章ID调用的,那么尝试一下在id 1 后面加个单引号 看看监控情况

先清空一下当前监控的SQL语句 点击下断 更新就可以了

5

然后访问:http://localhost/index.php?Article-index-id-1%27.html

再看下监控

4

单引号没有被带入,但是可以看到 ID中并没有包含单引号 不需要闭合单引号来进行注射 在尝试一下

union select

提交URL:http://localhost/index.php?Article-index-id-1%20union%20select.html

再次查看监控

6

还是老样子没变化,初步可以判断出ID参数是用了 intval 来过滤(其实这里看代码更快!)

然后看了下 文章下方有一个留言的地方,留言基本都是用insert xxxxxxxxxxx 来插入sql语句

这里在留言处随便输入几个字符加个单引号看看监控情况

7

通过监控到的SQL语句如下

8

可以看到单引号都被转义了 但是我们可以看到SQL语句中有一个ip的字段 难道程序会将留言者的IP插入数据库?

一般来说获取访问者IP的方法无非就是x_forwarded_for HTTP_CLIENT_IP REMOTE_ADDR

前面两种可以伪造,有很多php程序都是先用x_forwarded_for判断,如果x_forwarded_for为空的话才用REMOTE_ADDR获取真实IP

那么问题来了 x_for 是可以伪造的,如果程序对x_for没有过滤或者没有验证IP的合法性,那么就会导致SQL注射

下面来验证一下看看是否存在漏洞,打开burp伪造一下x_forwarded_for

9

数据库直接报错 很明显存在注射了

然后根据当前的SQL语句 构造一下insert into的注射

INSERT INTO img_comment (article_id, title, user_name, content, ip, status, dateline) VALUES ('1', 'aaaaaaaaaaaaa', 'aaaaaaaaaa', 'bbbbbbbbbbbbbbbbbb', ''or updatexml(1,concat(0x7e,(user())),0) or 11, '1', '1466490537')#', '1', '1466490537')

在数据库中成功执行 那么最终的exp就是

X-Forwarded-For: 8.8.8.8'or updatexml(1,concat(0x7e,(user())),0) or 11, '1', '1466490537')#

最后来看看结果

10

public static function getClientIp() {
if (isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP'] != 'unknown') {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] !='unknown') {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}

Ps:指定端口连接的功能,主机处如上填写就行了。分号隔开,port=3306,如图所示:

2016061617111056865

【Author:勇剑斩天罡  From: 90Sec Team  MottoIn小编整理发布】

原创文章,作者:Moto,如若转载,请注明出处:http://www.mottoin.com/article/code/443.html

发表评论

登录后才能评论

联系我们

021-62666911

在线咨询:点击这里给我发消息

邮件:root@mottoin.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code