记一次安服仔薅洞实战(lucky)
字数 3439 2025-10-01 14:05:44
记一次安服仔薅薅洞实战(lucky)—— 渗透测试教学复盘
文档概述
本文档基于一次真实的安服(安全服务)渗透测试经历,详细剖析了针对一个特定 .NET/ASPX 架构系统的完整攻击链。攻击者通过信息收集、漏洞发现、利用和权限提升,最终成功获取系统权限。本文旨在作为教学材料,复现攻击思路与关键技术点。
一、 信息收集 (Information Gathering)
核心目标: 快速定位并筛选出可能存在漏洞的、易攻击的目标。
- FOFA 搜索引擎高级语法利用:
- 使用语法:
title="区域" && body="平台" && country="CN" && region!="HK" && region!="MO" - 语法解析:
title="区域" && body="平台":精准搜索网页标题和正文中包含特定关键词的站点,这类站点很可能是管理后台或业务平台。country="CN":将目标范围限定在中国境内。region!="HK" && region!="MO":排除香港和澳门地区,进一步精确目标范围,并有效屏蔽大量无关的博彩、色情等干扰网站。
- 策略价值: 这是一种高效的资产发现与筛选方法,能够快速从海量互联网资产中定位到“软柿子”。
- 使用语法:
二、 漏洞发现与利用 (Vulnerability Discovery & Exploitation)
攻击者对目标进行初步探测后,发现了一个典型的 .aspx 登入界面,并遵循了以下系统化的测试流程:
1. 前端代码审计 (F12 Developer Tools Analysis)
- 操作: 打开浏览器开发者工具(F12),检查网页源码和网络请求。
- 发现: 在源码或网络请求中发现了潜在的API接口路径(例如
/xxx/xxx.aspx)。 - 后续操作: 直接访问发现的接口路径,尝试未授权访问。
2. 目录遍历漏洞 (Directory Traversal)
- 发现过程: 访问接口路径未果后,利用
.NET特性,尝试访问接口的上级目录(如将URL中的/xxx/xxx.aspx改为/xxx/)。 - 漏洞利用: 成功访问到上级目录后,发现了目录列表,其中包含一个名为
uploader的目录,这强烈暗示了存在文件上传功能。 - 关键技巧: 对于
.NET站点,尝试回溯接口的上级目录是一种非常有效的发现手段,有时能直接访问到包含所有接口的管理器。
3. 未授权访问 (Unauthorized Access)
- 发现过程: 在源码中发现了登录后才能访问的页面路径(如
/admin/main.aspx)。 - 漏洞利用: 直接在前台浏览器中访问该后台页面路径。
- 结果: 成功访问到后台界面,但功能操作受限。这类漏洞属于中低危,可获取部分敏感信息,但通常无法进行实质性操作。
4. 登入框漏洞 (Login Portal Vulnerabilities)
- 测试项:
- 弱口令爆破 (Password Brute-Force): 尝试常用弱口令(如
admin:123456)并成功登录。 - 用户名枚举 (Username Enumeration): 通过输入错误用户名和密码时,系统返回的错误信息差异(如“用户名不存在” vs “密码错误”),可以推断出系统中存在的有效用户名。
- 验证码绕过 (CAPTCHA Bypass): 发现验证码可被重复使用或无有效校验机制。
- SQL注入 (SQL Injection): 测试了万能密码(如
' or '1'='1)等Payload,但目标系统对此有防护,未果。
- 弱口令爆破 (Password Brute-Force): 尝试常用弱口令(如
- 成果: 通过弱口令爆破成功进入系统,收获弱口令漏洞。
5. SQL注入漏洞 (SQL Injection)
- 发现过程: 在登录后的系统内部,浏览各功能点,并通过Burp Suite等工具拦截功能请求(如查询、筛选、点击等触发的HTTP请求)。
- 利用方法: 将拦截到的包含参数的请求(如
id=123、keyword=test)直接保存为文件,使用 Sqlmap 进行自动化检测。- 命令示例:
sqlmap -r request.txt --batch --level 3 --risk 3
- 命令示例:
- 结果: 成功确认存在SQL注入点,为进一步的数据窃取提供了可能。
6. 文件上传漏洞 (File Upload Vulnerability)
这是本次渗透测试获得最高权限的关键。
- 功能点定位: 在后台发现了一个“上传模板”或“下载模板”的功能。
- 绕过技术:
- 文件类型检测绕过: 上传一个正常的
.xlsxExcel文件,拦截上传请求。 - 文件名修改: 在拦截的请求中,将
filename参数的值修改为 Webshell 的扩展名,如filename="shell.aspx"。 - 文件内容检测绕过: 这是最关键的一步。
.xlsx文件本质上是ZIP压缩包,具有特定的文件头(PK)。需要在修改文件扩展名的同时,在文件内容最前面保留原始的PK文件头,之后再将Webshell的恶意代码内容写入。这样可以欺骗服务端的文件类型检测逻辑。
- 文件类型检测绕过: 上传一个正常的
- 获取Webshell路径:
- 上传成功后,服务器未直接返回文件存储路径。
- 巧思: 利用网站本身的“下载模板”功能。通过浏览器开发者工具,“检查”或“复制”下载模板按钮的链接,即可得到模板文件的存储路径。因为上传的恶意文件替换了原始模板,所以该路径即是Webshell的访问地址。
- 权限获取: 成功访问上传的
.aspx文件路径,获取系统命令行执行权限(例如使用中国菜刀或冰蝎(Behinder) 等Webshell管理工具连接)。
三、 攻击总结与知识提炼
| 阶段 | 技术点 | 使用工具/方法 | 成果/漏洞 |
|---|---|---|---|
| 信息收集 | FOFA高级语法 | FOFA | 精准定位目标资产 |
| 漏洞发现 | 前端代码审计 | 浏览器F12 | 发现接口路径 |
| 目录遍历 | 手动URL修改 | 目录遍历漏洞 | |
| 未授权访问 | 直接URL访问 | 中低危信息泄露 | |
| 登入框测试 | Burp Suite, 手动测试 | 弱口令、用户名枚举、验证码复用 | |
| 漏洞利用 | SQL注入 | Sqlmap | 数据库数据窃取 |
| 文件上传绕过 | Burp Suite, 十六进制编辑器 | 获取Webshell(最高权限) | |
| Webshell路径发现 | 浏览器F12(检查元素) | 定位恶意文件地址 | |
| 权限维持 | Webshell连接 | 冰蝎、中国菜刀 | 服务器控制权 |
核心技巧回顾:
.NET特性利用: 牢记.NET站点的目录回溯特性(/path/),这常是发现宝藏的起点。- 上传绕过精髓: 组合技——修改扩展名 + 保留合法文件头 = 有效绕过二进制内容检测。
- 路径推断: 当功能A(上传)和功能B(下载)操作同一对象时,通过功能B的输出可以反推功能A的输入结果。
四、 防御建议 (Defensive Recommendations)
- 输入验证与过滤: 对所有用户输入进行严格的校验和过滤,包括URL路径、文件名、表单参数等。
- 权限控制: 实施最小权限原则,前台页面和API接口必须进行有效的身份认证和授权校验,杜绝未授权访问。
- 强化口令策略: 强制使用复杂口令,启用双因素认证(2FA),并对登录失败进行限制和监控。
- 安全文件上传:
- 对上传文件进行白名单校验(只允许特定的扩展名和MIME类型)。
- 对文件内容进行二次渲染或病毒扫描,而不仅仅是检查文件头。
- 将上传的文件存储在Web根目录之外,并通过脚本代理访问,避免直接执行。
- 错误信息处理: 使用统一的、模糊的错误信息,避免泄露敏感信息(如“用户名不存在”)。
- 定期安全评估: 定期进行渗透测试和安全代码审计,主动发现潜在漏洞。
免责声明: 本文所有技术内容仅用于安全教育与防御技术研究,请勿用于非法用途。任何未经授权的网络攻击行为均属违法。