延时注入

上网搜了一下什么是延时注入,所谓延时注入主要针对页面无变化,无法用布尔真假判断,无法报错的情况下注入。

学习延时注入,首先要知道这几个函数。

sleep()  //延时

if(condition,ture,fales)   //条件语句

ascii()  //转换成ascii

substring()  substring("string",strart,length)   //mid()也一样从哪开始取几位

例如:

if(ascii(subtring("hello",1,1))=104,sleep(5),1)

可以看到,取出"hello"里的第一个字符串,也就是"h",判断他的ascii码是否为104("h"的ascii码为104),如果是则延时5秒,反之不延时。

同样,我们可以在substring函数里面写SQL语句,提取出我们所要查的表名、列名,再用延时猜解出来。


例如:

if(ascii(substring((SELECT distinct concat(table_name) FROM information_schema.tables where table_schema=database() LIMIT 0,1),1,1))=116,sleep(5),1);


同样的,我们可以嵌入SQL语句带入查询,配合以上函数即可猜出表名第一个字母的ascii码为117,即"u"。

猜解列名也是差不多的用法。

原文地址:https://www.cnblogs.com/wang1212-/p/8649800.html