
SQL注入时,空格的使用是非常普遍的。比如,我们使用union来取得目标数据。
空格被过滤,但括号没有被过滤,可通过括号绕过,我的经验是,在MySQL中,括号是用来包围子查询的。因此,任何可以计算出结果的语句,都可以用括号包围起来。
mysql 是先执行and后执行or的,如果你没加括号,系统会先判断1 = 1 AND PAYMENT_METHOD_CD = '0'符不符合,或者PAYMENT_METHOD_CD = '1'或者 PAYMENT_METHOD_CD = '2 ' 符不符合,只要这三个满足一个就可以达成,后面两个是没有1=1恒成立这个条件的select id, casewhen instr(text,'(') and instr(text,')') then
concat(left(text, instr(text,'(')-1),substr(text, instr(text,')')+1))
when instr(text,'(') then left(text, instr(text, '(')-1)
when instr(text, ')') then substr(text, instr(text, ')')+1)
else text
end
from 表
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)