不出网下的XSS回显和apache配置解析的利用
字数 1488 2025-08-22 12:23:30
不出网下的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配置:
<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"
关键配置点:
- 目录浏览功能开启(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实现完整攻击链
这种多层漏洞利用方式在实际渗透测试中很常见,强调了纵深防御的重要性。