WSTG v4.2解读之–枚举Web服务器上的应用程序
文章目录
1. 章节定位
对应OWASP TOP 10:信息收集阶段(为A1-A10漏洞利用提供攻击面)
2. 测试原理
当Web服务器托管多个未公开应用时,会形成"影子攻击面"。主要成因包括:
- 虚拟主机配置:单IP绑定多域名(如
webmail.example.com
与helpdesk.example.com
共享IP),未在DNS区域传输中完整公开 - 非标准端口:HTTP服务部署在非常规端口(如8080/8000),标准扫描易遗漏
- 隐藏路径:应用部署在深层路径(如
/admin-portal
),未被搜索引擎索引或页面引用 - 配置疏漏:内部系统错误暴露到公网(如测试环境、备份接口)
攻击者利用这些未公开入口点,可针对已知漏洞或弱配置系统发起攻击。
3. 测试方法
步骤1:识别非标准端口应用
# 全端口扫描与服务识别
nmap -Pn -sT -sV -p0-65535 192.168.1.100
# 检查HTTP服务响应
telnet 192.168.1.100 8000
GET / HTTP/1.0
关键点:
- 观察
STATE
为open
且SERVICE
含http
/ssl
的端口 - 对疑似端口发送HTTP请求验证服务类型
步骤2:发现虚拟主机应用
# DNS信息收集
host -t ns example.com
host -l example.com ns1.example.com
# 反向IP查询(Web工具)
curl "https://api.hackertarget.com/reverseiplookup/?q=192.168.1.100"
BurpSuite辅助操作:
-
在Proxy > Options启用
Hostname Resolution
-
对目标IP发送请求,修改
Host
头枚举可能域名:GET / HTTP/1.1 Host: webmail.example.com
步骤3:探测隐藏路径应用
# 使用Nikto扫描
nikto -h http://example.com -C all -Tuning x
# 目录爆破(常用工具)
gobuster dir -u example.com -w /usr/share/wordlists/dirb/common.txt
OWASP ZAP操作:
- Attack > Spider 爬取站点链接
- Attack > Forced Browse 使用目录字典暴力枚举
- 筛选响应码
200
但未在页面引用的路径
步骤4:搜索引擎辅助发现
# Google高级搜索
site:example.com inurl:/webmail
4. 修复建议
开发层面
-
应用注册机制:维护应用清单并自动校验
// Spring Boot示例:应用注册端点 @RestController public class AppRegistryController { @GetMapping("/api/app-registry") public List<AppInfo> listApps() { return Arrays.asList( new AppInfo("主商城", "/"), new AppInfo("管理后台", "/admin", 8080) ); } }
运维层面
-
网络层控制
# 禁止非公开应用的目录浏览 location /hidden-app { autoindex off; deny all; }
-
服务发现监控
- 定期执行自动化扫描验证暴露点
nmap -p 80,443,8080,8000 --script http-enum $IP
-
DNS安全配置
- 禁用DNS区域传输
- 清理废弃DNS记录(如已下线的
dev.example.com
)
关键原则:通过自动化工具持续监控攻击面,确保所有托管应用均经过安全评估并纳入管理流程。