Wireshark分析出攻击者sql注入时查询了哪些数据?
字数 1314 2025-08-15 21:34:08
Wireshark分析SQL注入攻击数据提取教学文档
0x001 概述
本教学文档将详细介绍如何通过Wireshark分析网络流量包,提取攻击者进行SQL注入时查询的数据内容。主要针对布尔盲注(Boolean-based Blind SQL Injection)场景进行分析。
0x002 准备工作
- 安装Wireshark网络分析工具
- 准备包含SQL注入攻击的流量包文件(.pcap或.pcapng格式)
- 了解基本的HTTP协议和SQL注入原理
0x003 流量包初步分析
3.1 过滤HTTP流量
在Wireshark中使用以下过滤表达式:
http
这将只显示HTTP协议的数据包。
3.2 识别注入点
观察HTTP请求中的URL参数,寻找可疑的SQL注入语句。例如:
http://localhost:81/?id=1' and ascii(substring((select keyid from flag limit 0,1),1,1))=32#
这是一个典型的布尔盲注语句,特征包括:
- 使用单引号(')闭合原有查询
- 包含
and逻辑运算符 - 使用
ascii()和substring()函数 - 包含
select子查询
0x004 分析注入技术
4.1 布尔盲注原理
攻击者通过构造条件语句,根据页面返回结果的真假来推断数据库信息。本例中:
- 测试
flag表中keyid字段的第一个字符的ASCII码是否为32(空格) - 通过不断调整ASCII码值(32-126)来逐个字符破解
4.2 注入语句解析
典型注入语句结构:
http://localhost:81/?id=1' and ascii(substring((select keyid from flag limit 0,1),{字符位置},1))={ASCII值}#
参数说明:
{字符位置}:要测试的字符在字符串中的位置(从1开始){ASCII值}:猜测的字符ASCII码值
0x005 区分成功与失败的注入
5.1 观察响应包差异
-
注入失败的响应包:
- 通常返回错误页面或默认内容
- 内容长度可能较短
-
注入成功的响应包:
- 返回正常页面内容
- 内容长度通常较长且固定
5.2 使用Wireshark过滤成功响应
根据内容长度过滤:
http.content_length == 366
(具体长度值需根据实际情况调整)
0x006 自动化提取注入数据
6.1 导出过滤结果
- 在Wireshark中应用过滤条件
- 导出为文本文件(如aa.txt)
6.2 编写Python解析脚本
import re
number = []
with open("aa.txt", "r", encoding="utf-8") as f:
for i in f.readlines():
flag_number = re.findall(r"
$$
Request URI: .*?=(\d+)%23
$$
", i, re.S) # 提取ASCII码
url_list = re.findall(r"
$$
Request URI: (.*?)
$$
", i, re.S) # 提取完整URL
if flag_number:
print(url_list)
number.append(flag_number[0])
print(number)
flag = ''
for i in number:
flag += chr(int(i)) # ASCII转字符
print(flag)
6.3 脚本说明
-
使用正则表达式提取:
- 注入URL中的ASCII码值
- 完整的请求URL
-
处理流程:
- 按顺序读取导出的文本文件
- 提取所有成功的ASCII码值
- 将ASCII码转换为对应字符
- 拼接成完整字符串(flag)
0x007 关键注意事项
- 顺序问题:确保ASCII码按字符位置顺序排列,攻击通常从第1个字符开始依次测试
- 编码问题:注意URL编码(%23表示#),在正则表达式中需正确处理
- 内容长度:正确识别成功与失败响应的长度差异是关键
- 字符范围:ASCII码通常在32-126之间,超出范围可能是错误数据
0x008 扩展应用
- 可修改脚本处理其他形式的盲注,如时间盲注
- 可结合其他工具(如Burp Suite)进行更全面的分析
- 可扩展用于分析其他类型的SQL注入攻击
0x009 防御建议
- 使用参数化查询或ORM框架
- 实施输入验证和过滤
- 配置WAF(Web应用防火墙)
- 限制数据库用户权限
- 监控和记录可疑的数据库查询
通过以上步骤,可以有效地分析出攻击者通过SQL注入获取了哪些数据,并采取相应的防御措施。