不出网下的XSS回显和apache配置解析的利用
字数 1488 2025-08-22 12:23:30

不出网下的XSS回显和Apache配置解析利用技术分析

1. 漏洞背景分析

本文档分析了一个结合XSS攻击和Apache配置解析漏洞的综合利用案例,涉及以下关键技术点:

  1. 存储型XSS利用
  2. Apache配置解析漏洞
  3. 条件竞争的SSTI攻击

2. 目标系统分析

2.1 系统功能

目标系统是一个名为"MysteryMessageBoard"的留言板系统,主要功能包括:

  • 用户登录/注销
  • 留言评论功能
  • 管理员访问控制

2.2 关键代码审计

从main.go源代码审计发现:

  • 存在模拟admin登录操作并返回到主页的功能
  • flag需要admin的session才能获取
  • 存在XSS攻击面

3. 存储型XSS利用

3.1 攻击思路

  1. 普通用户登录后在评论中插入JS代码(存储型XSS)
  2. 当admin访问主页时触发XSS
  3. XSS代码让admin访问flag路由获取flag并回显到评论区

3.2 具体步骤

  1. 爆破密码:使用BurpSuite爆破出shallot用户密码为888888
  2. 登录系统:使用普通用户shallot/888888登录
  3. 插入XSS Payload:在评论页面写入XSS攻击代码
  4. 触发攻击:访问admin页面模拟admin登录触发XSS
  5. 获取flag:查看评论区回显的flag

4. Apache配置解析漏洞利用

4.1 Apache配置分析

从robots.txt中发现的Apache配置:

<Directory "/usr/local/apache2/app">
    Options Indexes
    AllowOverride None
    Require all granted
</Directory>

<Files "/usr/local/apache2/app/app.py">
    Order Allow,Deny
    Deny from all
</Files>

RewriteEngine On
RewriteCond "%{HTTP_USER_AGENT}" "^L1nk/"
RewriteRule "^/admin/1.html?secret=todo"

关键配置点:

  1. 目录浏览功能开启(Options Indexes)
  2. 特定文件(app.py)访问被禁止
  3. URL重写规则:当User-Agent以"L1nk/"开头时启用重写

4.2 解析漏洞利用

利用点:

  • 如果User-Agent以"L1nk/"开头,会启用RewriteRule规则
  • 规则会将匹配到的路径拼接上.html
  • 存在解析问题:可以通过%3f(问号URL编码)截断,读取任意文件

攻击方法:

  1. 设置User-Agent头为"L1nk/"
  2. 构造特殊URL利用%3f截断
  3. 读取系统任意文件

5. SSTI条件竞争攻击

5.1 漏洞分析

从获取的templates.py代码中发现:

  1. 文件读取功能存在SSTI漏洞
  2. 但代码会检测"{"字符,直接阻止了常规SSTI
  3. 关键点:代码调用了两次readmsg()
  4. 通过条件竞争可以在检测间隙实现SSTI攻击

5.2 攻击方法

  1. 构造SSTI Payload
  2. 利用两次readmsg()调用的时间差
  3. 在第一次检测后、第二次执行前插入恶意代码
  4. 实现命令执行

6. 综合攻击链

完整攻击流程:

  1. 通过Apache配置解析漏洞获取源码
  2. 审计代码发现SSTI条件竞争漏洞
  3. 构造SSTI Payload实现命令执行
  4. 同时利用存储型XSS获取管理员权限
  5. 最终获取系统完全控制权

7. 防御建议

  1. XSS防御

    • 对所有用户输入进行HTML实体编码
    • 实施严格的CSP策略
    • 对敏感操作增加CSRF保护
  2. Apache配置安全

    • 禁用目录浏览(Options -Indexes)
    • 限制重写规则的范围
    • 避免使用过于宽松的匹配规则
  3. SSTI防御

    • 使用安全的模板引擎
    • 对模板输入进行严格过滤
    • 避免在模板中使用用户可控输入
  4. 条件竞争防御

    • 对关键操作加锁
    • 避免重复处理相同数据
    • 实施原子性操作

8. 总结

本案例展示了如何综合利用多种漏洞实现系统入侵:

  1. 从信息收集开始(robots.txt)
  2. 利用配置解析漏洞获取更多信息
  3. 代码审计发现深层次漏洞
  4. 组合利用XSS和SSTI实现完整攻击链

这种多层漏洞利用方式在实际渗透测试中很常见,强调了纵深防御的重要性。

不出网下的XSS回显和Apache配置解析利用技术分析 1. 漏洞背景分析 本文档分析了一个结合XSS攻击和Apache配置解析漏洞的综合利用案例,涉及以下关键技术点: 存储型XSS利用 Apache配置解析漏洞 条件竞争的SSTI攻击 2. 目标系统分析 2.1 系统功能 目标系统是一个名为"MysteryMessageBoard"的留言板系统,主要功能包括: 用户登录/注销 留言评论功能 管理员访问控制 2.2 关键代码审计 从main.go源代码审计发现: 存在模拟admin登录操作并返回到主页的功能 flag需要admin的session才能获取 存在XSS攻击面 3. 存储型XSS利用 3.1 攻击思路 普通用户登录后在评论中插入JS代码(存储型XSS) 当admin访问主页时触发XSS XSS代码让admin访问flag路由获取flag并回显到评论区 3.2 具体步骤 爆破密码 :使用BurpSuite爆破出shallot用户密码为888888 登录系统 :使用普通用户shallot/888888登录 插入XSS Payload :在评论页面写入XSS攻击代码 触发攻击 :访问admin页面模拟admin登录触发XSS 获取flag :查看评论区回显的flag 4. Apache配置解析漏洞利用 4.1 Apache配置分析 从robots.txt中发现的Apache配置: 关键配置点: 目录浏览功能开启(Options Indexes) 特定文件(app.py)访问被禁止 URL重写规则:当User-Agent以"L1nk/"开头时启用重写 4.2 解析漏洞利用 利用点: 如果User-Agent以"L1nk/"开头,会启用RewriteRule规则 规则会将匹配到的路径拼接上.html 存在解析问题:可以通过%3f(问号URL编码)截断,读取任意文件 攻击方法: 设置User-Agent头为"L1nk/" 构造特殊URL利用%3f截断 读取系统任意文件 5. SSTI条件竞争攻击 5.1 漏洞分析 从获取的templates.py代码中发现: 文件读取功能存在SSTI漏洞 但代码会检测"{"字符,直接阻止了常规SSTI 关键点:代码调用了两次readmsg() 通过条件竞争可以在检测间隙实现SSTI攻击 5.2 攻击方法 构造SSTI Payload 利用两次readmsg()调用的时间差 在第一次检测后、第二次执行前插入恶意代码 实现命令执行 6. 综合攻击链 完整攻击流程: 通过Apache配置解析漏洞获取源码 审计代码发现SSTI条件竞争漏洞 构造SSTI Payload实现命令执行 同时利用存储型XSS获取管理员权限 最终获取系统完全控制权 7. 防御建议 XSS防御 : 对所有用户输入进行HTML实体编码 实施严格的CSP策略 对敏感操作增加CSRF保护 Apache配置安全 : 禁用目录浏览(Options -Indexes) 限制重写规则的范围 避免使用过于宽松的匹配规则 SSTI防御 : 使用安全的模板引擎 对模板输入进行严格过滤 避免在模板中使用用户可控输入 条件竞争防御 : 对关键操作加锁 避免重复处理相同数据 实施原子性操作 8. 总结 本案例展示了如何综合利用多种漏洞实现系统入侵: 从信息收集开始(robots.txt) 利用配置解析漏洞获取更多信息 代码审计发现深层次漏洞 组合利用XSS和SSTI实现完整攻击链 这种多层漏洞利用方式在实际渗透测试中很常见,强调了纵深防御的重要性。