個人滲透測試思路(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:

依靠自動化手段可能發現一些特徵不明顯的漏洞:

此外,儲備一些特定功能的腳本對於提升挖掘效率也有大幫助,多看多學多總結。