1、概述

大多数渗透人员在对一个系统做渗透测试的时候,最大的痛点是无法获得一个全面的测试思路和流程,以至于遗漏真正存在的漏洞或在不存在漏洞的点上浪费太多时间。

实际上渗透技能的研习是一个持续更新的过程,对于每个漏洞的理解程度不同,测试结果会有很大差距。要做的就是对每个漏洞都形成自己的一个印象库和姿势库:漏洞的形成本质、有几种可能的发生场景、有哪些防护是可以绕过的等等。清楚自己当下的测试水准,界限好水平在哪里,以一个漏洞开始挖深挖全,随着自己挖掘经验的积累和阅读其他人的Writeup/Blog,对每个漏洞的心得会从0到1,从1到100,逐渐形成自己独特的知识储备和渗透技能树,比如讲到JWT:

2、渗透思路篇幅有限,这里只涉及企业级内网手工渗透测试,即在手握web环境信息及测试账号前提下的渗透测试,不涉及挖掘现网环境/挖掘SRC漏洞/现网攻击等情形。区别在于后者多了一个很重要的信息探测过程(网络空间/搜索引擎、子域挖掘、IP段/版本号等)和WAF绕过、后攻击过程,另开专题讲解。

对于渗透思路,个人总结的主要有两条主线,即:

1、按系统功能:每个功能(如查询)可能存在的漏洞;

2、按漏洞类型:先前总结的漏洞可能出现的场景,一一对应;

举个例子,按思路1,发现web系统存在上传文件功能,则可尝试的思路就有:直接上传脚本、绕过校验、畸形后缀、文件名XSS、上传HTML/svg进行HTMLi、上传xlsx、docx进行XXE、上传超大文件进行DOS、跨目录上传/解压等,这是看到上传功能就应该出现的渗透思路,通过探测过程猜测出后台代码逻辑是最好的。

另一种,思路2,对着CheckList回找功能,比如看到下面CheckList中第四项重定向漏洞,便可以遍历系统功能或查看Burp Suite的history页签,筛选出302状态码和存在url跳转参数的包,进行探测、绕过等等。

3、漏洞范围:1)官方漏洞

确定自己漏洞库的范围,最权威的当属OWASP top10,最新漏洞列表为:

2)个人漏洞CheckList

个人在测试过程总结的Checklist,具体测试思路点后续可能补充,大部分都在之前的漏洞系列中详细讲解,点击传送。

前端漏洞:

1、 XSS(HTML、css注入)

2、 CSRF

3、 CORS配置不当

4、 ClickJacking

后端漏洞:

1、 SQL注入

2、 XXE注入

3、 文件上传/下载/包含

4、 开放重定向

5、 会话攻击

6、 DOS攻击

7、 反序列化

8、 命令注入

9、 第三方组件安全(CVE)

10、敏感信息泄露

11、SSRF

12、CRLF

13、web缓存欺骗

14、json劫持

15、SSTI

16、越权漏洞(IDOR)

17、账户劫持ATO

18、DDE注入

19、条件竞争

20、命令OS注入

21、参数污染

22、其他注入(LDAP、表达式、RCE)

23、目录遍历

24、业务逻辑漏洞

25、安全设计问题

26、服务器配置不当

对于每种漏洞,应该在看到漏洞名字或类型时,应该展现出对于这个漏洞的全景图。

4、Payload及案例汇总1)https://github.com/Voorivex/pentest-guide

包含了各漏洞的原理及典型案例:

2)https://github.com/swisskyrepo/PayloadsAllTheThings

主要集合各漏洞的攻击、绕过方法和对应payload,姿势较齐全:

3)https://github.com/OWASP/CheatSheetSeries/tree/master/cheatsheets

OWASP对于各漏洞的cheatsheets,补充了几个维度的漏洞:

4)https://github.com/1N3/IntruderPayloads/tree/master/FuzzLists

对各漏洞FUZZ的攻击payloads,可作为速查表:

5、一个小TIP纯手工挖掘漏洞时使用的核心工具是Burp Suite,有时候使用一些扩展就可能得到意外收获,实战中比较好用的几个Exrtender:

依靠自动化手段可能发现一些特征不明显的漏洞:

此外,储备一些特定功能的脚本对于提升挖掘效率也有大帮助,多看多学多总结。