SQL注入经验-大负荷注入

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 在常见的渗透测试中,我们都知道SQL注入攻击中有联合查询,报错注入,盲注还有DNS注入等等,那么如果一个网站存在基于时间的盲注,而恰好sleep这类核心函数被过滤的话,我们如何绕过进行注入呢,这里就分享一个经验——大负荷注入。

SQL注入经验—利用笛卡尔算积进行大负荷注入


在常见的渗透测试中,我们都知道SQL注入攻击中有联合查询,报错注入,盲注还有DNS注入等等,那么如果一个网站存在基于时间的盲注,而恰好sleep这类核心函数被过滤的话,我们如何绕过进行注入呢,这里就分享一个经验——大负荷注入。


一. 笛卡尔算积

作为一个数学7分的我来说,看到这个数学名词瞬间就不想接着往下研究了,不过还好这个并不是很难,我就简单的讲解一下

看图:

 

也就是说数字1先去乘以ABC,然后数字2再去乘以ABC,然后数字3再去乘以ABC,是不是感觉很熟悉,其实就是Burp suite里面的Intruder模块的Attack type里面的Clutser bomb攻击方式

 

二. 大负荷查询

Mysql支持这种运算方式,我们的思路是让Mysql进行笛卡尔算积使其造成大负荷查询达到延时的效果。

既然要用笛卡尔算积就要需要大额的数值来计算,在mysql数据库中都有information_schema这个表,这个表里面的数据还是蛮多的,查询一下数量

 

然后我们进行笛卡尔积运算,不难发现数值的大小影响了计算的速度,通过采用1个表2个列,或者2个列一个表,等等各种组合找出合适的延时的时间。

 

这里给出payload

select * from admin where id = 1 and 1 and (SELECT count(*) FROM information_schema.columns A, information_schema.columns B, information_schema.tables C);

你完全可以按照这个规律,从C后面加个逗号,写D,E等等等,想写多少就写多少,但是写的越多查询的速度就会越慢,如果在表或者列数量很少的情况下,可以写的多一点。

到浏览器实践一下,发现确实延迟了

 

利用这个方法,开始注入就可以

先查询一下当前数据库,这里是为了节约时间和验证

 

可见是数据库名是test,字母t的Ascii码是116,这里构造payload

发现延迟了5秒,其实这5秒只是数据库进行大负荷的笛卡尔算积

 

如果Ascii码不对,则会不会产生延迟从而不会回显数据

 

放在浏览器运行一下

 

尝试错误的Ascii数值

 

这里就不多演示爆表名,列名还有数据了,会手工布尔盲注的人应该都懂。

最后附上靶场的源码:

<?php
header("Content-type: text/html; charset=utf-8");
$conn=mysql_connect('localhost', 你的数据库用户名, 你的数据库密码);
mysql_select_db("test",$conn);
$uid=($_GET['id']);
$sql="SELECT * FROM admin where id=$uid";
$result=mysql_query($sql, $conn);
print_r('当前SQL语句: '.$sql.'<br /><hr />结果: ');
print_r(mysql_fetch_row($result));
mysql_close();
?>
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 监控 安全
SQL注入的实现原理以及防止
SQL注入的实现原理以及防止
|
1月前
|
SQL Java 应用服务中间件
Java项目防止SQL注入的四种方案
Java项目防止SQL注入的四种方案
37 0
|
1天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
9 0
|
9天前
|
SQL 安全 PHP
CTF--Web安全--SQL注入之Post-Union注入
CTF--Web安全--SQL注入之Post-Union注入
|
1月前
|
SQL 安全 测试技术
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
15 0
|
1月前
|
SQL 安全 API
|
2月前
|
SQL JSON 数据库
常见的sql注入类型闭合及符号
常见的sql注入类型闭合及符号
31 0
|
2月前
|
SQL 数据库 数据安全/隐私保护
sql注入碰到加密数据怎么办
sql注入碰到加密数据怎么办
19 1
|
2月前
|
SQL 数据库
SQL注入基础(报错注入及延时注入)
SQL注入基础(报错注入及延时注入)
22 0
|
2月前
|
SQL
14、sql注入绕过技术
14、sql注入绕过技术
27 0