??思路来自美团杯2021,本来说出题人已经把select通过正则过滤了,就不该总是往用select进行查询那方面想-》 select id from users where username=‘admin‘ and password=‘admin‘
??首先我们测出or没被过滤,and被过滤,||没被过滤,异或没被过滤,但是select被过滤了,如果纠结于用盲注,那么就必须要用到select。
然后题目还过滤了单引号,可以用到之前那篇随笔我提到的方法。通过 username=admin\ 去注释掉查询语句中的单引号进行绕过,然后再到密码栏插入payload。
一开始我采用的payload: username=admin&password=|| 1=1 通过这种判断 得到了 页面的提示 no flag here,但是感觉提示的不是很明白。
之后构造了 username=admin&password=(ord(left(database(),1))/**/regexp/**/0x67)1 得到了数据库名的第一个字符是g 最后一个字符是p ,然后 测得数据库有3个字符。
但其实仔细一想这样不行, 因为 select 根本没法用,后面如果要查表 或者 查列都必须用到select。 所以必须换种思路。
原文:https://www.cnblogs.com/Dark1nt/p/14810692.html