盲注基本概念:
盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。
基于布尔的盲注 Web的页面的仅仅会返回True和False。那么布尔盲注就是进行SQL注入之后然后根据页面返回的True或者是False来得到数据库 中的相关信息。
盲注 => 显错注入
盲注 => 没有显示的注入
1、页面没有输出点
盲注:
1、布尔盲注(能判对错)
2、时间盲注(能判时间)
盲注利用相关函数
length()函数用于返回字符串的字节长度,长度单位为字节(我们能利用该函数查询数据库,表名,字段的长度)
substr(string, start,length)函数用来切割字符串
string是所要切割的字符串
start从哪里开始切
length要切多长
ascii()能将字段转换为数字
注入利用方法
先判断数据库的长度使用length函数来判断,如果猜测的长度正确则页面会返回正常
http://192.168.8.153/Pass-10/index.php?id=20 and length(databse())=3
猜完数据库的长度,用substr来分割数据库名进行逐一猜解,用ascii来将猜解的字符转换成数字
http://192.168.8.153/Pass-10/index.php?id=1%20and%20ascii(substr(database(),1,1))=97
如果这条语句返回正常则我们猜测的数据库第一个字符ascii为97即为a,相同的方法可以逐一猜测出其他的字符。
这里也可以使用工具来跑,使用burpsuit抓包,把包放到跑包模块intruder圈上要改变的变量
设置跑的范围
点击开跑就能跑出我们数据库的ascii编码(107,97,110,119,111,108,111,110,103,120,105,97)
解一下就可以得到我们的数据库名,表名和字段名也是同样的方法