渗透测试基本流程

0-前言

​ 毕业工作第二年,才明白渗透测试工程师与红队差别很大,一个是固定的漏洞排查,一个是穷尽方法的绕过。

​ 虽然工作方式为定式,但要把具体的攻击手法转化为抽象的知识也比较困难,就像防御入侵一样,不知道随着ai的发展能不能批量的将攻击手法转化为抽象的知识,然后自动构建工具攻击或者防御。

1-基本流程

1>领取用例

2>默认通过

3>排查漏洞 == 常见漏洞排查 == 不符合

漏洞类型 内容 注意
cors origin 回显存在对应字符
csrf referer 存在且可访问
信息泄露 正则表达式匹配所有请求响应包(通常匹配url和响应体,包含js) 正则的构造最好用贪婪
异常回显 暴露的异常java类 java.xxx.xxx
中间件 403禁止访问/异常回显的apache等中间件 403
业务覆盖 可操作理论不可操作的业务 id覆盖即数据覆盖
重定向 登录登出 跳转页面
步骤跳跃 前端认证响应 第二步骤无需第一步骤参数
伪造ip bp插件fakeIP 日志查看异常ip
后台泄露 嵌套爆破目录 401状态和403状态
RCE object参数的排查或者框架漏洞的排查 回显的中间件
sql注入 闭合sql语句 两单引号双引号的变形
未授权 路径的爆破 端口、目录、接口爆破
xss 页面是否解析</>页面是否存在预览pdf 能否直接页面注入反射
其他服务 排查端口开放情况 多个port
越权 水平垂直越权 替换token且可访问
文件上传 可执行文件上传 返回路径/上传成功
其他漏洞类型 内容 注意
伪造用户名 修改识别的用户名 如果靠token确认user就算了
源代码泄露 暴露copy的源代码 github的地址
CRLF %c4%8d%c4%8a或者%0d%0a 回显请求体同理出现
逻辑问题 不能却能 脑袋清晰的时候测

4>缺陷发布

5>生成报告

2-细分

信息泄露

中间件
js排查(内容与标题)
403页面(版本号)
响应包
身份信息
报错信息