Wireshark实战:5种常见Web攻击流量特征速查手册(附DVWA靶场案例)

Wireshark实战:5种常见Web攻击流量特征速查手册(附DVWA靶场案例)

在安全运维和渗透测试的日常工作中,我们常常面对海量的网络流量数据。如何在数以万计的数据包中,像经验丰富的猎人一样,迅速嗅探到攻击者的踪迹?这需要的不仅仅是工具,更是一套精准的“流量指纹”识别方法。Wireshark作为网络分析的瑞士军刀,其强大之处在于过滤和深度解析,但如何构建高效的过滤表达式,并理解不同攻击在协议层面留下的独特“签名”,是区分新手与专家的关键。本文将聚焦五种最常见的Web攻击类型——SQL注入、XSS、文件上传、命令执行和暴力破解,结合经典的DVWA靶场环境,为你呈现一份可直接用于实战的流量特征速查手册。我们不仅会提供“拿来即用”的Wireshark筛选公式,更会深入拆解每个攻击包的关键字段,让你知其然,更知其所以然,最终练就一双从嘈杂流量中瞬间定位威胁的“火眼金睛”。

1. SQL注入攻击:在HTTP请求中寻找数据库的“敲门声”

SQL注入的本质,是攻击者将恶意的SQL语句“拼接”或“注入”到正常的应用程序请求参数中。在流量层面,这表现为HTTP请求的查询字符串、POST数据体或Cookie里,出现了本不该属于用户输入的SQL关键字和特殊符号。识别这类攻击,关键在于理解应用程序正常行为与异常注入之间的语法差异。

一个典型的基于错误的SQL注入,攻击者会尝试使用单引号(')、双引号(")来破坏原有SQL语句结构,并使用UNIONSELECTFROMWHEREORANDSLEEP()DATABASE()等关键字来探测或提取数据。在Wireshark中,我们无需等待应用层返回错误,直接在请求阶段就能进行拦截判断。

1.1 实战案例:DVWA低安全级别SQL注入流量分析

假设我们的靶场服务器IP是192.168.1.100,攻击者从IP192.168.1.50发起攻击。一个常见的注入Payload可能是:

1' UNION SELECT user, password FROM users #

当这个Payload通过表单提交时,它会被URL编码。在Wireshark中捕获到的原始HTTP请求行或POST数据可能看起来像这样:

GET /dvwa/vulnerabilities/sqli/?id=1%27%20UNION%20SELECT%20user%2C%20password%20FROM%20users%20%23&Submit=Submit HTTP/1.1

核心筛选与特征提取:

首先,我们可以使用一个组合过滤器,将流量范围缩小到目标服务器的HTTP请求:

ip.dst == 192.168.1.100 && http.request

接下来,我们需要在过滤后的数据包中寻找特征。最直接的方法是使用Wireshark的搜索功能(Ctrl+F),在分组详情中搜索字符串,选择“分组字节流”范围,搜索关键词如unionselectfromwhere'#--等。

然而,更高效的方法是使用显示过滤器配合contains操作符。但注意,contains对大小写敏感,且作用于整个数据包。一个更精准的方法是结合http.request.urihttp.file_data字段:

http.request.uri contains "union" or http.file_data contains "select"

但这种方法在Payload被编码后可能失效。因此,最可靠的策略是结合流量上下文进行人工分析。找到可疑数据包后,右键点击 -> “追踪流” -> “HTTP流”,可以清晰地看到解码后的完整请求。

注意:高级攻击者可能会使用混淆技术,如将SELECT写成SeLeCt,或使用HTML编码、十六进制编码。因此,过滤器可能需要更灵活,例如使用正则表达式(需借助matches操作符和pcre语法,但Wireshark原生支持有限),或关注异常长的参数值、频繁的数据库错误响应(HTTP 500状态码)等间接特征。

1.2 关键字段速查与特征表

下表总结了SQL注入在Wireshark流量中的核心识别点:

特征维度 具体表现 Wireshark中的观察位置 示例/说明
语法破坏字符 单引号(), 双引号(), 分号(;) http.request.uri, http.file_data id=1'name=admin“--
SQL关键字 UNION, SELECT, INSERT, UPDATE, DELETE, DROP, FROM, WHERE, OR, AND http.request.uri, http.file_data 注意大小写变种和编码,如 %55NION (U的URL编码)
数据库函数 SLEEP(), BENCHMARK(), DATABASE(), VERSION(), USER() http.request.uri, http.file_data 常用于基于时间的盲注或信息探测。
注释符 #, -- (注意有个空格), /* */ http.request.uri, http.file_data
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值