3-3〔OSCP ◈ 研记〕❘ WEB应用攻击▸WEB应用安全评估工具
郑重声明: 本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。
💥👉点赞❤️ 关注🔔 收藏⭐️ 评论💬💥
更多文章戳👉Whoami!-CSDN博客🚀
𖤐 嘿,经过前面的预热,我们正式打开这扇门,来吧 !
𖤐 𝓗𝓮𝔂, 𝓪𝓯𝓽𝓮𝓻 𝔀𝓪𝓻𝓶-𝓾𝓹,𝔀𝓮'𝓻𝓮 𝓷𝓸𝔀 𝓸𝓯𝓯𝓲𝓬𝓲𝓪𝓵𝓵𝔂 𝓸𝓹𝓮𝓷𝓲𝓷𝓰 𝓽𝓱𝓲𝓼 𝓭𝓸𝓸𝓻,𝓒𝓸𝓶𝓮 𝓸𝓷 !
→ 信息收集
→ 漏洞检测
→ 初始立足点▸WEB应用攻击▸WEB应用安全评估工具-----我们在这儿~ 🔥🔥🔥
→ 权限提升
→ 横向移动
→ 报告/分析
→ 教训/修复
目录
1.Web应用安全评估工具
1.1 使用Nmap进行Web服务器指纹识别
1.1.1 基础服务扫描(-sV)
1.1.2 深度枚举(NSE脚本扫描)
1.2 使用Wappalyzer在线识别技术栈
1.2.1 操作流程
1.2.2 两种使用方式
1.在线Wappalyzer官网方式
2.浏览器插件方式
3.典型技术栈识别结果
1.3 使用Gobuster进行目录爆破
1.3.1 目录爆破流程
1.3.2 核心爆破命令详解
1.3.3 常用字典对比
1.3.4 典型扫描结果分析
1.3.5 状态码安全解读
1.3.6 实战示例
1.4 Sublist3r枚举子域名
1.4.1 安装与准备
1.4.2 基本用法与参数解读
1.4.3 Sublist3r 在渗透测试中的角色
1.4.4 实战示例
1.基础枚举命令
2.进阶用法
💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬
1.Web应用安全评估工具
🔧 本文介绍的工具列表
工具 | 用途 |
---|---|
Nmap | Web服务指纹识别与端口扫描 |
Wappalyzer | 在线技术栈分析(CMS/框架/语言) |
Gobuster | 暴力破解文件/目录路径 |
Sublist3r | 子域名枚举(扩展内容) |
1.1 使用Nmap进行Web服务器指纹识别
定位目标:识别Web服务器类型与版本(如Apache/Nginx/IIS)
应用场景:针对开放端口(如80/443)的主动枚举
1.1.1 基础服务扫描(-sV)
$ sudo nmap -p 80 -sV 192.168.50.20
输出关键信息:
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
结论:
✅ 服务器类型:Apache
✅ 版本号:2.4.41
✅ 操作系统:Ubuntu
1.1.2 深度枚举(NSE脚本扫描)
$ sudo nmap -p 80 --script=http-enum 192.168.50.20
输出关键信息:如下所示,发现几个文件夹,可能会提供有关目标Web应用程序的更多详细信息。
kali@kali:~$ sudo nmap -p80 --script=http-enum 192.168.50.20
Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-29 06:30 EDT
Nmap scan report for 192.168.50.20
Host is up (0.10s latency).
PORT STATE SERVICE
80/tcp open http
| http-enum:
| /login.php: Possible admin folder
| /db/: BlogWorx Database
| /css/: Potentially interesting directory w/ listing on 'apache/2.4.41 (ubuntu)'
| /db/: Potentially interesting directory w/ listing on 'apache/2.4.41 (ubuntu)'
| /images/: Potentially interesting directory w/ listing on 'apache/2.4.41 (ubuntu)'
| /js/: Potentially interesting directory w/ listing on 'apache/2.4.41 (ubuntu)'
|_ /uploads/: Potentially interesting directory w/ listing on 'apache/2.4.41
(ubuntu)'Nmap done: 1 IP address (1 host up) scanned in 16.82 seconds
价值:
⚠️ 暴露敏感路径(如/db/, /images/等)
⚠️ 揭示应用功能入口(如/login/)
1.2 使用Wappalyzer在线识别技术栈
技术定位:被动式Web应用指纹识别工具
核心价值:深度解析网站技术生态,无需主动扫描
1.2.1 操作流程
1.2.2 两种使用方式
使用方式 | 操作步骤 | 优势 |
---|---|---|
1.在线平台 | 1. Wappalyzer官网---注册账户 2. 输入目标URL 3. 获取即时报告 | 完整API支持 批量扫描能力 |
2.浏览器插件 | 1. 安装Chrome/Firefox扩展 2. 访问目标网站 3. 实时显示技术栈图标 | 即时检测 无需离开当前页面 |
💡 插件安装路径:
Chrome商店 | Firefox商店
1.在线Wappalyzer官网方式
2.浏览器插件方式
3.典型技术栈识别结果
目标域名:megacorpone.com
技术类别 | 检测结果 | 风险提示 |
---|---|---|
操作系统 | Ubuntu 20.04 | ⚠️ 需验证安全补丁状态 |
Web服务器 | Apache 2.4.41 | 🔴 存在CVE-2021-41773漏洞风险 |
前端框架 | React 17.0.2 | ⚠️ 检查XSS防护机制 |
JavaScript库 | jQuery 3.6.0 | 🟡 已知DOM漏洞(CVE-2021-44228) |
分析工具 | Google Analytics | ✅ 低风险 |
📌 操作备忘录
1. 注册Wappalyzer账户:https://www.wappalyzer.com/signup
2. 安装浏览器插件 → 访问目标网站 → 点击工具栏图标
3. 关注标红项目(高危组件): - ⚠️ `AngularJS 1.4.x` (CVE-2015-9251) - ⚠️ `PHP 5.6.x` (EOL版本)
4. 导出JSON报告
🚨 最佳实践:将Wappalyzer结果与Nmap扫描交叉验证,避免云WAF导致的指纹伪装!
1.3 使用Gobuster进行目录爆破
技术定位:暴力枚举Web应用隐藏路径的Go语言工具
核心价值:发现未公开访问点 → 扩大攻击面
1.3.1 目录爆破流程
⚙️Gobuster工具特性
特性 | 说明 | 风险提示 |
---|---|---|
暴力破解引擎 | 基于字典的路径枚举 | ⚠️ 产生大量流量(易触发WAF) |
多模式支持 | 目录/DNS/虚拟主机枚举 | ✅ 灵活应对不同场景 |
高性能 | Go语言并发处理 | 🔴 需控制线程数(-t 参数) |
Kali兼容 | 非kali自带,需手动安装 | sudo apt install gobuster |
1.3.2 核心爆破命令详解
$ gobuster dir -u http://192.168.50.20 -w /usr/share/wordlists/dirb/common.txt -t 5
参数 | 作用 | 推荐值 |
---|---|---|
dir | 目录枚举模式 | 固定 |
-u | 目标URL/IP | http://<target> |
-w | 字典路径 | /usr/share/wordlists/dirb/ |
-t | 线程数 | 5(隐蔽模式)→ 50(快速扫描) |
1.3.3 常用字典对比
字典文件 | 条目数 | 适用场景 |
---|---|---|
common.txt | 4,614 | 基础快速扫描 |
small.txt | 959 | 极速隐蔽探测 |
big.txt | 20,468 | 深度全面爆破 |
directory-list-2.3-medium.txt | 220,560 | 专业渗透测试 |
💡 字典路径:
/usr/share/wordlists/dirb/
1.3.4 典型扫描结果分析
kali@kali:~$ gobuster dir -u 192.168.50.20 -w /usr/share/wordlists/dirb/common.txt -t
5
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://192.168.50.20
[+] Method: GET
[+] Threads: 5
[+] Wordlist: /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.1.0
[+] Timeout: 10s
===============================================================
2022/03/30 05:16:21 Starting gobuster in directory enumeration mode
===============================================================
/.hta (Status: 403) [Size: 278]
/.htaccess (Status: 403) [Size: 278]
/.htpasswd (Status: 403) [Size: 278]
/css (Status: 301) [Size: 312] [--> http://192.168.50.20/css/]
/db (Status: 301) [Size: 311] [--> http://192.168.50.20/db/]
/images (Status: 301) [Size: 315] [--> http://192.168.50.20/images/]
/index.php (Status: 302) [Size: 0] [--> ./login.php]
/js (Status: 301) [Size: 311] [--> http://192.168.50.20/js/]
/server-status (Status: 403) [Size: 278]
/uploads (Status: 301) [Size: 316] [--> http://192.168.50.20/uploads/]
===============================================================
2022/03/30 05:18:08 Finished
===============================================================
=============================================================== /admin (Status: 403) # 禁止访问目录 /backup (Status: 301) # 重定向路径 /images (Status: 200) # 公开资源目录 /login.php (Status: 200) # 登录入口 /config.inc (Status: 200) # 高危配置文件 /README (Status: 200) # 说明文档
1.3.5 状态码安全解读
状态码 | 含义 | 风险等级 | 后续动作 |
---|---|---|---|
200 | 成功访问 | 🟢 中危 | 内容审计 |
301/302 | 重定向 | 🟡 低危 | 跟踪跳转 |
403 | 禁止访问 | 🔴 高危 | 权限绕过测试 |
404 | 不存在 | ⚪ 无风险 | 忽略 |
1.3.6 实战示例
-
隐蔽模式配置:线程数小,扫描慢。
# 降低线程数 + 随机延迟 gobuster dir -u http://target -w wordlist.txt -t 3 --delay 500ms-2s
-
结果过滤优化:
# 排除404响应(减少干扰) gobuster dir ... --status-codes-blacklist 404
1.4 Sublist3r枚举子域名
Sublist3r 是一款用 Python 编写的子域名枚举工具🎯,主要通过搜索引擎(如 Google、Bing、Yahoo)、DNS爆破、Netcraft等多种渠道收集目标域名的子域名,这对于渗透测试前期信息收集、扩大攻击面很有帮助。
1.4.1 安装与准备
首先通过Git 克隆仓库并安装依赖。
git clone https://github.com/aboul3la/Sublist3r.git
cd Sublist3r
pip install -r requirements.txt
1.4.2 基本用法与参数解读
通过 sublist3r -h
查看所有参数。以qq.com
为例(仅做演示,实际测试务必先获得授权)。
参数示例 | 说明 | 适用场景 |
---|---|---|
sublist3r -d qq.com | 基本枚举:使用默认的搜索引擎和公开源进行查找 | 快速获取目标子域名列表 |
sublist3r -d qq.com -p 80,443,8080 | 端口扫描:枚举子域的同时,检查这些子域上特定端口(如80, 443, 8080)的开放情况 | 快速了解哪些子域可能提供了HTTP/HTTPS等服务,缩小进一步测试的范围 |
sublist3r -d qq.com -b | 暴力破解:启用自带的SubBrute模块进行子域名爆破 | 尝试发现那些未被搜索引擎收录的、隐藏的子域名 |
sublist3r -d qq.com -v | 详细模式:实时显示扫描过程和各个引擎的返回结果 | 调试或观察扫描细节 |
sublist3r -d qq.com -e google,baidu | 指定搜索引擎:只使用指定的搜索引擎(如google, bing, baidu等)进行查询 | 在某些网络环境下,可能只需要特定的几个引擎 |
sublist3r -d qq.com -o results.txt | 输出结果:将枚举到的子域名列表保存到指定的文本文件中 | 方便后续使用其他工具进行进一步扫描或测试 |
sublist3r -d qq.com -t 10 | 设置线程:设置暴力破解时的线程数(默认为10,可根据网络和电脑性能调整) | 提高爆破速度,但线程过高可能被目标屏蔽 |
表格中的 -p
参数非常实用,帮你快速识别出可能运行着Web服务的子域名。
1.4.3 Sublist3r 在渗透测试中的角色
Sublist3r 的核心作用是高效发现子域名,扩大攻击面。很多时候,关键的漏洞或薄弱点并不总是出现在主域名上,而是存在于那些容易被遗忘的、未及时维护的子域名(例如测试环境、临时站点、旧的API端点等)上。
子域名枚举能有效扩大攻击面,发现那些被忽视或未管理的资产,并可能关联到内部系统,所以它在渗透测试和信息收集阶段非常重要。
⚠️ 使用注意:
合法授权:务必仅在获得明确书面授权的目标上使用 Sublist3r。
网络波动:其效果受搜索引擎是否收录、DNS解析、API限制及网络环境影响。
结果复核:工具并非万能,可能存在遗漏(False Negative)或误报(False Positive),手动验证和与其他工具(如Amass、AssetNote、OneForAll等)交叉比对是良好习惯。
合规与道德:未经授权对任何系统进行扫描或测试均是违法且不道德的。
1.4.4 实战示例
1.基础枚举命令
执行以下命令,对 example.com
进行子域名枚举:
python sublist3r.py -d example.com
工具会自动调用默认的搜索引擎和数据源,开始收集子域名。
结果输出,运行后会显示收集到的子域名,例如:
[+] Enumerating subdomains for example.com
[+] Searching Google...
[+] Searching Bing...
[+] Searching Yahoo...
...
[+] Found: www.example.com
[+] Found: mail.example.com
[+] Found: admin.example.com
[+] Found: blog.example.com
...
[+] Total Unique Subdomains Found: 25
2.进阶用法
- 若想使用 DNS 爆破(结合字典)提高枚举效率,可添加
-b
参数:python sublist3r.py -d example.com -b
- 若想将结果保存到文件,使用
-o
参数:python sublist3r.py -d example.com -o subdomains.txt
💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬
您的支持是我创作最大的动力!