前言
在渗透测试过程中,有时容易陷入无解状态,不知从何下手。本文对渗透测试的整体思路进行系统整理,涵盖前期准备、信息收集、攻击实施及安全防护四个核心阶段,旨在为安全从业者提供清晰的行动指南。
一、前期准备
明确渗透测试的目标范围和授权深度是首要任务。正规渗透必须获取书面授权。整体流程大致如下:
- 技术侦查 -> DNS 侦查 -> 子域名枚举 -> 端口扫描 -> 目录枚举 -> CMS 侦查 -> Google Hacker
- 社会工程学 -> 弱口令 Top1000 -> 数据泄露 -> Whois 查询 -> 邮箱收集 -> 公开仓库分析 (Github 等) -> 代码注释 -> 钓鱼
- 分析建模 -> 建立草稿 -> 整理思路
- 公开漏洞匹配 -> 服务器漏洞匹配 -> Web 漏洞匹配
- 漏洞挖掘分析 -> 测试范围 {服务器 | PC 客户端 | 网站 | 微信服务号 | 微信小程序 | Android 应用...}
- 进阶测试
- 证据搜集
- 风险评估 -> 漏洞分级 -> 漏洞详情介绍 -> 漏洞参考
- 生成报告
二、信息收集
信息收集是渗透测试的基础,主要包括以下内容:
- 判断网站的类型
- 了解公司业务及 Web 服务的功能
- 收集公司 (个人) 信息
- 中间件版本的查询(Apache, IIS, Nginx, Tomcat 等)
- Google Hacker 技巧
- 敏感目录扫描
- 查询 CMS 类型
- 端口扫描
- 二级/三级域名扩展
- C 段检测
1. 判断网站的类型
编程语言可以通过测试 index.{php,asp,aspx,jsp,do,action} 来确认,也可在返回头信息中查看。
以 .do、.action 结尾的 URL 通常涉及 Struts2 框架,需重点测试相关漏洞。确定网站类型有助于梳理后续的渗透思路。
2. 了解公司业务及 Web 服务的功能
通过了解业务逻辑寻找潜在漏洞点:
- 输入框:是否有搜索框(SQL 注入/XSS)、留言框(XSS 打 Cookie)。
- 登录/注册:尝试 SQL 注入或 XSS;验证码是否可识别、可无视、可爆破;是否存在任意注册管理权限账号的风险。
- 手机号验证:是否能无限轰炸、任意更改、时间验证是否严格、验证码是否相同。
- 越权访问:登录是否越权、未授权访问、个人信息存储型 XSS、CSRF 绕过、UID 修改检测平行/垂直越权。
- 文件上传:头像上传是否能 GetShell,检查直接上传、解析漏洞、后缀限制(如能否上传 txt)。
- 密码修改/找回:CSRF 风险、验证机制绕过、短信轰炸风险。
- 交易功能:购买商品时是否可修改支付金额、数量,收货地址是否存在存储型 XSS。
- API 接口:检查安全性与逻辑错误漏洞。
3. 收集公司 (个人) 信息
主要利用社会工程学和一些常规信息搜索手段:
- Whois 查询:获取注册人姓名、常用 ID、QQ、邮箱。
- 社工库:尝试旧密码组合。
- 密码策略:组合密码 + Top1000 常见密码。
- 前端源代码:检查注释中的敏感信息。
- 开放平台:Github 等平台泄漏的敏感信息。
- DNS 记录:查询域名商信息。
4. 中间件版本的查询
中间件漏洞非常常见,常见的中间件包括:
- IIS:一定支持 asp, asa, cer。
- Apache:常见就是 php。


