首页 > 其他分享 >延时注入暴库

延时注入暴库

时间:2025-01-16 10:03:35浏览次数:1  
标签:数据库 暴库 sleep 延时 SQL 加载 暴破 注入

Sql注入之延时注入工具暴破实践

什么是延时注入

延时注入爆破是一种SQL注入攻击技术,它利用数据库查询的执行时间差异来推断数据库中的信息。这种技术通常用于那些不允许直接输出数据库错误信息或数据的场景,使得攻击者无法通过传统的错误信息来获取数据。

在延时注入中,攻击者构造特殊的SQL查询,这些查询的执行时间会根据数据库中的数据而变化。例如,攻击者可能会构造一个查询,其中包含一个条件,这个条件只有在满足特定数据时才会使查询变慢。通过测量查询的执行时间,攻击者可以逐个字符地猜测数据库中的敏感信息,如用户名、密码等。

sleep():

sleep() 在 PHP 中是一个内置函数,它用于延迟脚本的执行指定的秒数。这个函数通常用于在执行某些需要等待的操作之前暂停脚本的执行。

例如,如果你正在编写一个脚本,需要在两次数据库查询之间等待一段时间,你可以使用 sleep() 函数来实现。

使用 sleep() 函数的语法如下:

sleep(seconds);

如:sleep(5); // 脚本将暂停5秒

暴库前须知

实操时尽量选择靶场进行练习操作,严禁在没授权、许可的情况下对任何网站进行SQL注入。

猜闭合符

不管是”' ”还是” " ”都会显示You are in...........,这个时候平常的方法已经无法使用了,因为不管你输入的哪个符号都看不出来到底是不是闭合符,所有如果要找注入点就要用其他方法,比如这个sleep(),通过这个函数让页面进行加载,如果闭合符是对的那它就会加载,如果不加载说明就是错误的。

接下来开始猜闭合符,通过sleep(3)发现单引号使用sleep(3)后,点击EXECUTE后开始加载,另外一个双引号点击后没加载。

那么注入点就已经找到了。

/sqli-labs-php7-master/Less-9/?id=1" and sleep(3) -- +,在id=1" and xxxx sleep(3) -- + 进行注入。

burpSuite工具对当前数据库的长度进行暴破

对当前库进行库长度的暴破,使用burpSuite工具暴库

通过这条命令开始进行注入,看页面是否加载3秒来判断是否执行成功

/sqli-labs-php7-master/Less-9/?id=1'

and if(length((select database()))>10,sleep(3),1) --

命令代码详解:

?id=1':一个URL参数,其中id是一个查询参数。

and:在SQL语句中,and用于连接多个条件,使之必须同时满足。

if(length((select database())>10),sleep(3),1):这是一个SQL函数if的使用示例,它根据条件执行不同的操作:

length((select database())):计算当前数据库名称的长度。

>10:条件判断,如果数据库名称的长度大于10,则执行sleep(3),否则执行1。

sleep(3):使SQL语句执行延迟3秒,这是一种时间盲注技术,通过测量响应时间来推断数据库信息。

1:如果条件不满足,则执行一个无害的操作,返回1。

-- +:在SQL语句中,--通常用于注释掉后面的内容。

当前数据库长度暴破

以下所说的“加载”就是通过sleep()这个内置函数实现的,具体解释在第2部分内容有解释

/sqli-labs-php7-master/Less-9/?id=1'andif(length((select database()))>10,sleep(3),1) --

命令执行后,未发现页面进行加载,说明当前数据库长度不大于10(包括10)。

继续二分法,看数据库长度是否大于7,运行后,依旧加载3秒,说明数据库长度在7-10

剩下的值自己就可以试着猜了,经过猜解,得出数据库长度为8

burpSuite工具进行当前数据库库名暴库

得出长度后就开始暴破数据库名称,使用burpSuite工具进行暴库。

以下是过程

/sqli-labs-php7-master/Less-9/?id=1'and

if((substr((select database()),1,1) = "i" ),sleep(3),1) --

以上这串命令就是能够查询数据库名的命令

命令的详细解释

这串注入命令的详细解释如下:

?id=1':尝试结束正常的查询参数,并开始注入SQL代码。

and:连接原始查询和注入的SQL条件。

if(...):SQL的IF函数,根据括号内的条件来执行不同的操作。

substr((select database()),1,1):从当前数据库名称中提取第一个字符。

= "i":检查提取的字符是否等于"i"。

sleep(3):如果条件为真(即数据库名称的第一个字符是"i"),则执行sleep(3),造成3秒的延迟。

1:如果条件为假,则返回1,这通常不会影响查询结果。

-- :这是尝试结束注入的SQL命令并注释掉。

简单来说就是select database()),1,1)=”i”,第一个1就是从第几个字符开始,第二个1是一次几个字符,这里的意思是从第一个字符开始,一次一个字符,也可以理解成步长值为1,一次走一步。

实现原理通过工具进行猜解,当第一字符与=”i”匹配时,页面就会加载,加载后字符长度肯定与没加载的不相同,这样就能猜到8的长度对应的8个字符,依次排序即可。

开始进行当前数据库库名暴破

暴破前准备

开启浏览器代理与burpSuite的代理,端口要一致。

浏览器的代理:

BurpSuite工具代理:

开启后就可以接下来的操作了。

勾选上浏览器的代理,然后开启工具的截距。顺便点击图二的工具按钮,就可以上Burpsuite上抓取数据包了

进入intruder后选择这两个需要暴破的数据,选择工具中的集束炸弹选项

第一个爆破数据设置为下图

从1到8,步长为1(这里的8就是第4块对数据库长度进行的猜解,上面有写过程)

第二组暴破数据默认即可,下面红框可以选择工具自带的字符,选择即可,然后开始暴破。

以下就是暴破成功的数据包,按照编号从1排到8就行了。排序得到当前数据库为”security”。

结语

SQL注入攻击是一种常见的网络安全风险,通过有效的防范措施可以降低风险并保护应用程序和数据库的安全。在开发和维护应用程序时,始终要注意输入验证、过滤和参数化查询,以及使用安全的API和框架。同时,尽量遵循最小权限原则,并定期更新和维护系统。在日常工作中尊重并遵守组织的漏洞披露政策,确保负责任地报告和修复安全问题,运维者和渗透测试者都应保持警惕,不断更新自己的技能和知识库,以应对日益复杂的网络安全环境。同时,两者之间的紧密合作对于维护一个组织的网络安全至关重要。

标签:数据库,暴库,sleep,延时,SQL,加载,暴破,注入
From: https://www.cnblogs.com/BPTesting/p/18674334

相关文章

  • 代码审计-PHP原生开发&SQL注入&数据库监控&正则搜索&文件定位&静态分析
    知识点1、PHP审计-原生态开发-SQL注入&数据库语句监控2、PHP审计-原生态开发-SQL注入&正则匹配搜索3、PHP审计-原生态开发-SQL注入&功能追踪代码审计分类:1、原生态开发-代码审计源码案例2、框架类开发-代码审计源码案例3、组件类开发-代码审计源码案例4、前端类开发-代码......
  • 【原创】thinkbook16+2023锐龙7840h版本笔记本C口充电需要重新插拔才起作用的问题自己
    这个笔记本左边有两个c口都可以充电有一个是usb4,pd100w。现在出现一个问题需要插两次才能申请到pd协议。看了主板,也没有办法直接给他dc20v的电压输入。怀念以前的笔记本都是dc供电,简单耐用。两个c口试过都是一样的,应该是主板电路上的问题吧,如果维修肯定要返厂,浪费时间精力。如......
  • MYSQL--------SQL 注入简介&&MySQL SQL Mode 简介
    SQL注入简介定义:SQL注入是一种常见的安全漏洞,攻击者通过在输入中插入恶意的SQL语句,利用应用程序中未正确处理的输入数据,来改变SQL查询的逻辑,从而执行非预期的操作,如绕过身份验证、获取未授权数据、修改或删除数据等。示例:--正常的登录查询SELECT*FROMusersWHE......
  • 基于PHP的MYSQL注入(2)
    符号拼接由于网站开发者对数据类型或者对sql语句的写法(框架)导致1、数字型(无符号干扰)select*fromuserswhereid=$id;2、字符型(不光是单引号,也可能是双引号或者其他)select*fromuserswhereid='$id';3、搜索型(多符号干扰)select*fromuserswhereidlike'%$......
  • 瑞友天翼应用虚拟化系统 GetPwdPolicy SQL注入漏洞
    0x01阅读须知(免责声明)        技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均......
  • letta-ai - 为 LLM 应用注入记忆能力的开发框架
    该项目是用于构建具有记忆功能的LLM应用的Python框架,支持创建拥有长期记忆和持久状态的智能体(Agent),并能够集成多种LLMAPI服务。13800Stars1500Forks28Issues118贡献者Apache-2.0LicensePython语言代码:GitHub-letta-ai/letta:Letta(formerlyMemGPT)......
  • BurpSuite之SQL 注入测试实操
    1、安装:CO2插件进入【BurpSuite】---【拓展】---【BApp商店】,安装完成后,[已安装]列会有:√ 拦截后发送到【重放器】: 重发器中【请求】中操作:【拓展】---【CO2】---【发送到SQLMapper】 2、SQL注入(1)操作登录 (2)进行拦截,发送给【重放器】: (3)修改name的请求语句......
  • 【DNS攻防】深入探讨DNS数据包注入与DNS中毒攻击检测 (C/C++代码实现)
    DNS数据包注入和DNS中毒攻击是网络安全领域中的两个重要主题。DNS(域名系统)是互联网中的一项核心服务,负责将域名转换为与之相对应的IP地址。DNS数据包注入是指攻击者通过篡改或伪造DNS请求或响应数据包来干扰或破坏DNS服务的过程。攻击者可通过注入恶意数据包来改变DNS解析结果,将......
  • bp靶场---SQL注入第四关
    Lab:SQLinjectionattack,queryingthedatabasetypeandversiononMySQLandMicrosoft传送门:https://portswigger.net/web-security/sql-injection/examining-the-database/lab-querying-database-version-mysql-microsoft首先测试注入点,使用category=Pets'and'1=......
  • bp靶场---SQL注入第六关(oracle)
    Lab:SQLinjectionattack,listingthedatabasecontentsonOracle传送门:https://portswigger.net/web-security/sql-injection/examining-the-database/lab-listing-database-contents-oracle看一下描述拿到adminstrator的账号密码进行登录,已知该数据库为oracle第一......