抓取应用程序sql语句

本文介绍了如何使用tcpdump和wireshark在Linux和Windows上抓取数据库(如MySQL、SQLServer、Oracle)的数据包,包括设置监听、过滤特定端口和解析SQL语句的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、利用tcpdump和wireshark 抓包方法

1、下载安装wireshark(windows用)
注:可以用wireshark 抓包和分析包
https://www.wireshark.org/
在这里插入图片描述
2、安装tcpdump(linux用)

yum install tcpdump -y

3、在数据库服务器上抓数据包(这里抓mysql)
在这里插入图片描述
看下连接情况,有的是scoket连接的就无法用这种方法了,只能在数据库日志上做文章了,注意入侵式要考虑是否影响业务

单个端口

tcpdump -i any -s 0 -nnvvX port 3306  -A -w mysql.pcap

多个端口

tcpdump -i any -s 0 -nnvvX 'port 3306 or port 33060' -A -w mysql.pcap

-i any:监听所有网络接口,包括IPv4和IPv6的接口。
-s 0:捕获完整的数据包长度,避免截断数据。
-nnvvX:分别表示不转换主机名和端口名(-n),详细输出(-v),更详细输出(-vv),以及以十六进制和ASCII格式显示数据(-X)。
‘port 3306 or port 33060’:过滤条件,抓取目的或源端口为3306或33060的数据包。
-A:以ASCII格式打印数据包的内容,这对于查看SQL查询文本特别有用。

4、使用wireshark分析包 获取sql语句
在这里插入图片描述
wireshark 可以识别mysql 协议,但是有时候我们会使用代理如haproxy 需要更改下协议
在这里插入图片描述
ctrl+shift+u 打开切换协议
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、补充其他数据库说明
(1)sqlserver wireshark 抓取
在这里插入图片描述
同样的方法用wireshark直接抓取

(2)sqlserver 使用 profiler 抓取sql
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)oracle抓取

tcpdump -i any -s 0 -nnvvX port 1521  -A -w oracle.pcap

在这里插入图片描述
在这里插入图片描述
这里复制为16进制的数据

0000 ec 01 01 00 00 00 01 00 00 00 03 5e ed 69 80 00 …^.i…
0010 00 00 00 00 00 01 84 00 00 00 01 0d 00 00 00 01 …
0020 01 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 …
0030 00 00 00 01 00 01 01 01 00 00 00 00 00 00 00 00 …
0040 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
0050 2c 73 65 6c 65 63 74 20 2a 20 66 72 6f 6d 20 74 ,select * from t
0060 6b 74 5f 63 68 65 63 6b 64 65 74 61 69 6c 20 77 kt_checkdetail w
0070 68 65 72 65 20 69 64 20 3d 20 3a 49 44 01 00 00 here id = :ID…
0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
0090 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 …
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
00b0 00 02 03 00 00 15 00 00 00 00 00 00 00 00 00 00 …
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 05 …
00d0 c4 1b 1b 09 1d …

这样就可以得到sql了,不好解析的话扔ai里就把sql弄出来了

<think>好的,用户想用Wireshark捕获和分析SQL注入的数据包。首先,我需要回忆一下Wireshark的基本使用方法和SQL注入的常见特征。Wireshark能够捕获网络流量,但用户需要正确配置才能抓取到相关的数据包。SQL注入通常发生在HTTP请求中,特别是POST或GET请求的参数部分,攻击者会在参数中插入恶意SQL代码。 首先,用户需要确定捕获的位置。比如,如果SQL注入针对的是Web应用,那么应该在内网的Web服务器所在网段,或者DMZ区域部署Wireshark,这样才能捕获到进出服务器的流量。然后,启动捕获前要选择正确的网络接口,这一点很重要,否则可能不到数据。 接下来,设置捕获过滤器可能会帮助减少噪音。比如,如果知道目标服务器的IP地址,可以设置过滤器host [目标IP],或者针对HTTP端口,比如tcp port 80。不过有时候可能更倾向于先捕获所有流量,再用显示过滤器来筛选,因为捕获过滤器可能会漏掉一些信息。 捕获开始后,用户需要进行一些实际的操作,比如模拟正常访问或者等待攻击发生,这样才能生成流量。之后停止捕获,开始分析。这时候需要使用显示过滤器,比如http.request.method == "POST"或http.request.method == "GET",来查看HTTP请求。寻找可疑的参数值,比如包含单引号、分号、UNION SELECT等SQL关键字的部分。 另外,要注意查看TCP流,右键点击数据包选择“追踪流”->“HTTP流”,这样可以更直观地看到整个请求和响应的内容。在请求参数中如果发现类似' OR 1=1-- 这样的字符串,可能就是SQL注入的迹象。同时,检查是否有异常的响应,比如数据库错误信息,这可能表明注入尝试成功或失败。 用户可能还需要了解如何保存捕获的数据,方便后续分析或报告。导出特定数据包或者整个会话都是有用的。此外,结合Tshark命令行工具可能对自动化分析有帮助,特别是处理大量数据时。 不过用户可能会有疑问,比如如何区分正常的SQL查询和恶意注入,这时候需要解释常见的注入模式,以及如何利用Wireshark的搜索功能,比如按字符串搜索“SELECT”、“UNION”等。另外,如果数据包被分段,像引用[4]提到的TCP分段问题,需要重组TCP流才能看到完整的SQL语句,这可能是一个需要注意的地方。 最后,确保用户了解预防措施,比如使用参数化查询,但用户的问题主要是捕获和分析,所以可能不需要深入讨论防御,但可以作为补充建议提及。总结步骤,从配置捕获位置、设置过滤器、捕获流量、分析HTTP请求、检查参数、追踪TCP流到保存结果,每一步都要详细但清晰地指导用户操作。</think>### 使用Wireshark捕获和分析SQL注入数据包的步骤 #### 1. **捕获前的准备工作** - **确定捕获位置**:将Wireshark部署在目标服务器所在的网络节点(如DMZ区或内网核心交换机),确保能捕获到与数据库交互的流量[^2]。 - **选择网络接口**:在Wireshark中选择与目标网络连接的接口(如以太网或Wi-Fi适配器)。 - **设置捕获过滤器(可选)**: 例如,若目标服务器IP为`192.168.1.100`,可输入: ```bash host 192.168.1.100 and tcp port 80 # 过滤HTTP流量 ``` #### 2. **开始捕获并触发流量** - 点击“开始捕获”按钮,同时模拟正常访问或等待潜在攻击发生。 - **SQL注入特征示例**: 恶意请求可能包含如下内容(以HTTP GET为例): ``` GET /login.php?username=admin' OR 1=1--&password=123 ``` #### 3. **分析捕获的数据包** - **应用显示过滤器**: ```bash http.request.method == "POST" || http.request.method == "GET" # 筛选HTTP请求 ``` - **检查可疑字段**: - 在数据包详情中展开`HTTP > Hypertext Transfer Protocol`,查看请求参数。 - 使用**搜索功能**(Ctrl+F)查找SQL关键字(如`UNION`、`SELECT`、`DROP`)或特殊符号(如`'`、`;`)。 - **追踪TCP流**: 右键数据包 → `Follow → TCP Stream`,观察完整的请求-响应内容(如图1)。 ![TCP流示例:包含SQL注入的HTTP请求](https://via.placeholder.com/300x150?text=SQL注入请求示例) #### 4. **识别异常响应** - 若注入成功,响应可能包含数据库错误(如MySQL的`You have an error in your SQL syntax`)或非预期的查询结果。 - **示例分析**: 引用[4]中提到的TCP分段问题,若注入语句被分割传输,需在Wireshark中启用`Analyze → Reassemble TCP Stream`以完整查看。 #### 5. **保存与报告** - 导出可疑数据包:`File → Export Specified Packets`,选择范围并保存为`.pcapng`文件。 - 使用Tshark提取关键信息(命令行): ```bash tshark -r capture.pcapng -Y "http.request.uri contains 'SELECT'" -T fields -e http.request.uri ``` #### 6. **防御建议(补充)** - 在流量中检测到SQL注入后,应立即排查应用程序是否使用参数化查询或ORM框架[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值