个人渗透测试思路(cheatsheets)及技巧全汇总

  • 2019 年 10 月 10 日
  • 筆記

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:

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

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