专栏首页Gcow安全团队SQL注入经验-大负荷注入

SQL注入经验-大负荷注入

注:本文出自Gcow安全团队绝影小组成员瞳话

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();

?>

文章分享自微信公众号:
Gcow安全团队

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:绝影小组
原始发表时间:2020-03-14
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • springboot经验之sql注入、xss注入拦截(POST)

    sql注入、xss注入、cors攻击的简介以及解决方案,可以参考下面链接: https://blog.csdn.net/yhhyhhyhhyhh/article...

    一笠风雨任生平
  • 1.1.1-SQL注入-SQL注入基础-SQL注入流程

    有特定目标: inurl:.php?id=site:target.com // jsp sid

    tea9
  • 1.2.2-SQL注入-SQL注入语法类型-报错注入

    构造payload让信息通过错误提示回显出来 应用场景: 查询不回显内容,会打印错误信息 Update、insert等语句,会打印错误信息

    tea9
  • 1.1.1-SQL注入-SQL注入基础-SQL注入原理分析

    sql 结构化查询语言 通用的功能极强的关系数据库标准语言 功能包括查询、操纵、定义和控制四个方面 不需要告诉SQL如何访问数据库,只要告诉SQL需要数据库做什...

    tea9
  • 1.1.1-SQL注入-SQL注入基础-SQL注入练习环境搭建

    Sqli-labs https://github.com/Audi-1/sqli-labs

    tea9
  • Sql注入基础_mysql注入

    p { margin-bottom: 0.1in; direction: ltr; line-height: 120%; text-align: justify...

    梅花
  • 1.1.1-SQL注入-SQL注入基础-SQL手工注入方法

    核心原理: MySql内置的infromation_schema库,它功能强大,是我们进行MySql注入的基石!

    tea9
  • SQL注入

    SQL注入自诞生以来以其巨大的杀伤力而闻名于世。典型的SQL输入的例子就是当对SQL进行字符串拼接操作的时候,直接使用未加转义的用户输入内容作为变量,比如下面的...

    田维常
  • sql注入

    用户5166330
  • SQL注入

     其中,un和pwd都是String类型的变量,这是一个很明显的SQL注入漏洞,假设我令

    mathor
  • SQL注入

    所谓SQL注入,就是通过把SQL命令插入到表单中或页面请求的查询字符串中,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)S...

    用户2200417
  • SQL注入

    SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句添加额外的SQL语句,从而实现非法操作,...

    WindrunnerMax
  • 防止sql注入以及注入原理

    1. 判断是否可以注入 id=145 and 1=1正常显示 id=145 and 1=2 我这里可以注入的是正常显示,网上说提示错误 id=145′后面...

    苦咖啡
  • 1.2.1-SQL注入-SQL注入语法类型-union联合查询注入

    SQL UNION 操作符 用于合并两个或多个SELECT语句的结果集。 注意: SELECT语句必须拥有相同数量的列。 列也必须拥有相似的数据类型。 每条SE...

    tea9
  • SQL注入(一)之union注入

    木尤
  • SQL注入之宽字节注入

    西欧字母符号,通过1个字节来表示。东亚字符通过至少两个字节来表示。GBK编码就是用两个字节来表示中文区字符的一个编码标准。

    行云博客
  • sql注入之HTTP Header注入

    有些时候,后台开发人员为了验证客户端头信息(比如常用的cookie验证) 或者通过http header头信息获取客户端的一些信息,比如useragent、ac...

    逍遥子大表哥
  • 【SQL注入】SQL注入知识总结v1.0

    First of all,你的目标得有可以利用的漏洞才行,不存在什么万能代码的...

    一名白帽的成长史

扫码关注腾讯云开发者

领取腾讯云代金券