实战渗透-看我如何拿下自己学校的大屏幕(Bypass)
字数 1332 2025-08-25 22:58:55
实战渗透:学校大屏幕系统渗透测试与WAF绕过技术详解
0x00 前言
本文详细记录了一次针对学校大屏幕系统的渗透测试过程,涉及信息收集、弱口令利用、文件上传漏洞挖掘、0day利用以及WAF绕过技术。适合渗透测试初学者学习实战思路,也欢迎安全专家指正不足。
0x01 信息收集阶段
目标选择策略
-
优先选择二级域名:主域名通常集中托管,二级域名更可能部署在学校本地机房
- 示例:
creat.**.com(智慧校园系统) - 验证IP归属地与学校地理位置是否匹配
- 示例:
-
C段扫描方法
- 使用FOFA搜索:
ip="12.230.*.1/24" - 发现疑似目标:
12.230.*.194:8000(仅含登录页面的闭源系统)
- 使用FOFA搜索:
闭源系统分析方法
-
HTML源代码审计
- 查找特有文件路径:如
/Service/C***.asmx/Get* - 使用特征路径在FOFA搜索同类系统
- 查找特有文件路径:如
-
弱口令测试策略
- 在同类系统中寻找开发测试站点
- 尝试常见弱口令组合(如admin/admin)
0x02 漏洞挖掘与利用
文件上传漏洞分析
-
测试点选择
- 优先测试个人中心的头像上传功能
- 上传测试文件:
test.jpg(成功)→test.aspx(失败)
-
上传限制分析
- 测试方法:上传同类型不同名文件(ss.jpg)也失败 → 排除白名单机制
- 关键参数:
fileToUpload:上传文件directory:存储路径ticket:验证令牌
-
ticket机制逆向
- 发现ticket生成时文件名必须与上传文件名一致
- 利用步骤:
- 生成
test.ashx的ticket - 替换原始请求中的ticket
- 成功获取webshell
- 生成
0day利用
- 将HOST改为学校真实地址
- 发现WAF拦截(奇安信):
- 拦截扩展名:asp, aspx, ashx, asmx, cshtml
- 类型检测+内容检测双重防护
0x03 WAF绕过技术
扩展名绕过
- 发现.NET平台可用扩展名:
.svc- 示例payload:svcSmallSpy.svc
- 问题:上传成功但500错误(未执行)
垃圾字符绕过技术
- 原理:大量垃圾字符消耗WAF内存导致规则匹配失效
- 实施步骤:
- 生成含20万垃圾字符的ticket:
{*.ashx} - 确保上传文件名与ticket文件名一致
- 将shell代码置于垃圾字符末尾
- 使用注释符号包裹垃圾字符:
<%-- 垃圾字符 --%> shell代码
- 生成含20万垃圾字符的ticket:
- 注意事项:
- 垃圾字符必须足够大(20万字符级)
- 保持文件名一致性
- 正确使用注释语法
0x04 防御建议
-
文件上传防护:
- 实施严格的白名单机制
- 检查文件内容而不仅是扩展名
- 对上传文件重命名
-
认证加固:
- 禁用默认账户和弱口令
- 实施多因素认证
-
WAF配置优化:
- 设置请求大小限制
- 对异常大请求实施速率限制
- 定期更新防护规则
-
系统监控:
- 监控异常文件创建
- 审计文件上传日志
0x05 总结
本次渗透测试展示了从信息收集到最终getshell的完整过程,重点突破点包括:
- 通过特征文件定位同类系统寻找弱口令
- 逆向分析文件上传的ticket机制
- 创新性使用垃圾字符绕过WAF的内容检测
- 发现并利用.svc扩展名的上传漏洞
这种思路可应用于类似闭源系统的安全测试,但务必在合法授权范围内进行。