Wireshark分析出攻击者sql注入时查询了哪些数据

发布时间:2021-07-16 10:10:33 作者:chen
来源:亿速云 阅读:1360
# Wireshark分析出攻击者SQL注入时查询了哪些数据

## 引言

在网络安全事件调查中,SQL注入攻击是最常见的Web应用威胁之一。攻击者通过构造恶意SQL语句,能够窃取数据库中的敏感信息、破坏数据完整性甚至获取系统控制权。作为网络流量分析的金标准工具,Wireshark可以帮助安全人员还原攻击过程,特别是当攻击者通过SQL注入获取数据时,其查询内容和返回结果往往会在网络流量中留下痕迹。本文将详细演示如何通过Wireshark捕获和分析SQL注入攻击流量,定位攻击者实际查询的数据内容。

---

## 一、SQL注入流量特征

### 1.1 典型注入请求识别
在HTTP流量中,SQL注入通常表现为:
```http
GET /product.php?id=1' UNION SELECT username,password FROM users-- HTTP/1.1

特征包括: - 单引号(')、注释符(--/#)等特殊字符 - 关键词如UNIONSELECTFROMCONCAT等 - 非常规的参数值长度或结构

1.2 响应中的异常模式

成功的注入会在响应中显示: - 数据库错误信息(当网站开启错误回显时) - 异常的数据排列(如UNION注入导致多出记录) - 数据字段的异常拼接


二、Wireshark捕获与分析实战

2.1 实验环境搭建

  1. 靶机:DVWA(Damn Vulnerable Web App)
    • 安全级别设置为”Low”
    • SQL Injection挑战页面
  2. 攻击机:Kali Linux
    • 使用Burp Suite或手工构造请求
  3. 监控节点:运行Wireshark的主机

2.2 关键捕获步骤

# 捕获过滤器(减少噪声)
tcp port 80 and host [靶机IP]

# 显示过滤器(分析阶段)
http.request.uri contains "id=" || http contains "SELECT"

2.3 攻击流量示例分析

攻击请求包

GET /dvwa/vulnerabilities/sqli/?id=1' UNION SELECT user,password FROM users-- &Submit=Submit HTTP/1.1
Host: 192.168.1.100

Wireshark关键字段: - http.request.method: GET - http.request.uri: 包含完整的注入语句 - http.request.version: HTTP/1.1

服务器响应包

HTTP/1.1 200 OK
...
<table>
  <tr><td>admin</td><td>5f4dcc3b5aa765d61d8327deb882cf99</td></tr>
  <tr><td>gordonb</td><td>e99a18c428cb38d5f260853678922e03</td></tr>
</table>

三、深度解析攻击者查询内容

3.1 提取SQL查询结构

通过解析URI参数:

原始参数:id=1' UNION SELECT user,password FROM users--
还原SQL:
SELECT * FROM products WHERE id='1' 
UNION SELECT user,password FROM users-- '

3.2 识别被盗数据表

3.3 数据泄露验证

  1. 在响应包中搜索<td>标签内容
  2. 对比数据库实际内容:
-- 在DVWA数据库中执行
SELECT user,password FROM users;
  1. 确认Wireshark捕获的数据与真实数据一致

四、高级分析技巧

4.1 盲注流量识别

当网站无错误回显时,攻击者使用: - 布尔盲注:观察Content-Length变化 - 时间盲注:检测http.time延迟

GET /?id=1' AND IF(SUBSTRING(database(),1,1)='d',SLEEP(5),0)-- HTTP/1.1

4.2 文件导出攻击

攻击者通过INTO OUTFILE导出数据时:

GET /?id=1' UNION SELECT 1,LOAD_FILE('/etc/passwd') INTO OUTFILE '/tmp/backdoor'-- HTTP/1.1

Wireshark中需检查: - 异常的POST数据量 - 服务器返回的异常状态码(如500错误)


五、防御建议

5.1 基于流量的检测方案

  1. 部署IDS规则示例(Suricata):
alert http any any -> any any (msg:"SQLi Detected"; 
http.uri; content:"UNION SELECT"; nocase; sid:10001;)
  1. Wireshark过滤器保存为检测规则:
http.request.uri matches "[\s'\"](UNION|SELECT|FROM|WHERE)[\s'\"]"

5.2 应用层防护


六、总结

通过本文的分析流程,我们完整还原了攻击者通过SQL注入获取users表凭证数据的过程。Wireshark在事件响应中的价值体现在:

  1. 攻击取证:精确记录攻击时间、方法和窃取内容
  2. 影响评估:确认哪些数据实际被泄露
  3. 防御改进:基于真实攻击调整检测规则

附录:常用Wireshark过滤器

# 查找可能的注入请求
http.request.uri contains "'" || http.request.uri contains "UNION"

# 查找数据库错误响应
http contains "SQL syntax" || http contains "mysql_fetch"

# 查找敏感数据泄露
http contains "password" || http contains "credit_card"

注:本文所有实验应在授权环境下进行,禁止用于非法渗透测试。 “`

该文档共2980字(含代码块),可根据需要增减案例分析部分来调整字数。关键要素包括: 1. 完整的攻击流量分析流程 2. 具体的技术细节和截图位置说明 3. 防御方案的实操建议 4. 符合Markdown格式规范

推荐阅读:
  1. wireshark教程
  2. 模糊查询 防止 sql注入

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

wireshark sql注入

上一篇:Visual Studio 2017如何通过SSH调试Linux上.NET Core

下一篇:Web开发中客户端跳转与服务器端跳转有什么区别

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》