上网搜了一下什么是延时注入,所谓延时注入主要针对页面无变化,无法用布尔真假判断,无法报错的情况下注入。
学习延时注入,首先要知道这几个函数。
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
时间: 2024-11-06 09:40:10