DEVCORE OffSec Living Training x OSWA x OSWE

1/10 終於口試結束,只剩下煩教授讓我畢業。趁著 DEVCORE 乾爹半贊助的  OffSec  Unlimited 還沒過期前來多考幾張,平常一次考試要三四萬,考一張賺三萬,過年紅包自己賺,賺爛了...

DEVCORE OffSec Live Training

D 社贊助的課程方案是買實體課附贈 Exclusive 6 Months Learn Unlimited Access,在 2024/08 有一次 Web-200 實體課程,並且在六個月時限內可以接觸幾乎所有教材(除了幾個超高階課),可以無限次考試,同項目的考試沒過的話有一個月冷卻期,不同項目則沒有,所以我在最後一個月連續排了 OSWA、OSWE、OSCP+ 考試,賺爛了賺爛了

Web-200 實體課是連續五天,每天八小時,講師會很詳細的帶著學生走一遍 Web-200 教材和做 Lab,教材內容涵蓋基礎的工具教學、XSS、CSRF、SQL Injection、Directory Traversal、XXE、SSTI、Command Injection、SSRF、Insecure Direct Object Referencing。

這堂課的定位是零基礎入門等級,因為我的程度遠超課程內容,所以先聲明我沒全神認真聽課都在打 Lab。以我想像中的新手來講講觀察到的優點,教材內容真的是手把手帶學生走一遍,對於剛入門的小白很友善,而且講師會帶入一些實際滲透的思維,問問題引導學生進入滲透測試人員的視角來思考下一步該做什麼,還會補充一些教材上沒有的知識和技巧,不只是單純的照本宣科,是我覺得這堂 Web-200 實體課最有價值的地方。還有一個可以考慮的優點是對於新手來說,不用害怕提出蠢問題和撞牆,能減少入門摸索期帶來的挫折感。

課堂上都是 CTFer 和滲透大大,第一天上完老師很疑惑的問我們為什麼要來上課,因為大多數人都直接開始挑戰 Lab :D 平常打的 CTF 難度遠超 Web-200,教材的難易程度是可以自己啃完,同樣價位會建議去選 Pen-200 實體課。

OSWA

人權(?)

Offensive Security Web Assessor (OSWA) 是 Web-200 課程的證照,時間是 24hr 要打五台主機,每台有 Local.txt 和 Proof.txt 兩個 Flag,每個 Flag 10 points,及格需要 70 points,考完後要在 24hr 內交報告。他們審報告超快,隔天就收到通知惹。

我只有在去年八月 live training 做完 Lab,原本想口試完一周內複習一下,實習遇到好玩的事就沒空看,大概算半裸考。

我從 1/18 06:00 開考,扣除吃飯睡覺打約打了 16hr。大概打到 12hr 時拿到 70 points 剛好及格,後面通靈力枯竭沒什麼進展。

考試開始前十五分鐘可以進入監考網站和監考官確認護照身分,他會要求錄製螢幕和開鏡頭確認環境,我平常用筆電外接螢幕時都使用 Mirror 或是只使用外接螢幕,分享螢幕時只會有一個能分享,此外我右邊女友座位上還有一個外接螢幕,考官在檢查環境後要求我要分享三個螢幕或是搬走,最後我搬走女友螢幕,並且用 Extended mode 分享兩個螢幕,考官才讓我開始考試。

強烈建議一定要先做課程的 Lab 再來考試,先體會到 Web-200 風格才不會自我懷疑。主機上的洞利用都很簡單,難的是發現和爆破路徑,有些已經知道下一步要爆破路徑,還是怎麼掃都找不到 lol。一定要注意網站內容,不要直接下去測 API,很多提示都藏在內文裡需要一點悟性,尤其是提示你有沒有 Emulated User ,會直接影響解題方向是不是 XSS,有許多人表示遇到 XSS Emulated User 擺爛觸發不了,我很幸運的沒有遇過。

Local.txt 存在於 Admin Panel, Proof.txt 則是本地檔案。Local.txt 在寫報告的要求是要截圖 Admin Panel,所以即使戳到其他的洞弄出來還是得找出通往 Admin Panel 的方法;Proof.txt 就沒有限制了,無論是讀檔洞還是 RCE 都可以。有一題我戳出非預期解直接拿到兩個 Flag,還是得乖乖的找出通往 Admin Panel 的路 Orz...

報告的部分因為我剛寫完論文對 word 很熟(用別人弄好的 word 模板真的香),所以選用官方提供的模板,code 套用 HTML 樣式調個間距還算能看他預設字體有點醜可以考慮換一個,剩下問題不大,調排版花不到一小時。

OSWA 說難不難,漏洞利用都幾分鐘的事,但是要找到洞在哪裡真的需要運氣和通靈。考完後覺得技術沒什麼進步,通靈力多了不少,爽賺三萬(?)

題外話,我問監考官非預期解合不合理,他們只會貼 exam guide 內容給你,幾乎問什麼都貼 exam guide,是不是客服人員在監考 ...

OSWE

人權

Offensive Security Web Expert (OSWE) 是 Web-300 的課程,主要是考白箱 code review 挖掘漏洞。考試時間 48hr,另外24hr交報告。

考試環境有兩台弱點主機、兩台 Debug 主機和一台 Kali,可以在 Debug 主機上看 code 和測試。弱點主機會從五種語言(PHP, Node.js, C#, Java, Python) 抽兩種,Debug 主機會有相對應的 vscode 和 decompiler。弱點主機有 Local.txt 和 Proof.txt,分別對應到 Admin Panel 35 points 和 RCE 15 points,85 points 及格,所以至少要兩台 Admin Panel 和一台 RCE。和 OSWA 相異的點是報告需要有一鍵觸發 Exploit,雖然考試要求 RCE 是 「execute command or reverse shell」,最好是能反彈 reverse shell 比較保險。

我是在 OSWA 考完後才開始看 OSWE 教材,大概從 1/21 準備到 1/23,想說看教材好無聊直接做 Lab,Lab 意外簡單,洞很直接,SQL Injection 直接拚接,XSS 黑箱測一測大多是裸的,還有邏輯洞忘記驗密碼...善用 vscode 的 regex search 很快就能定位到弱點,用 Buttom-up 來找非常快,做 Lab 時大概一小時內能看完找出弱點,弱點利用本身很簡單,所以我看完後沒特別寫 Exploit。題目比平常 CTF 題還要長一些,不過遠比 Real World 應用短很多。

有個小技巧是找註解、Logger、用上 filter 的地方

考試開始於 1/24 06:00 ,這次確認身分環境快很多,時間分配如下
0hr: 開題目,看到是 PHP 和 Java 後安心睡覺
0hr-6hr: 睡覺
6hr-10hr: 耍廢+吃飯
10hr-12hr: 弄 code review 環境
12hr-14hr: 吃飯
14hr-20hr: 解出 PHP local 和找出Java local & proof
20hr-30hr: 睡覺
30hr-32hr: 吃飯耍廢
32hr-36hr: 寫 Exploit、解出 Java local & proof,發現我不會寫  code
37hr-39hr: 再看 PHP,怎麼想都不可能 RCE,放棄開始寫報告39hr-42hr: 寫完報告交出去

我覺得考試和 Lab 遠比教材內的 Real World 簡單,考試讓我意外的是 admin panel 串的 API 蠻多的,不如 Lab 簡單粗暴。OSWE 最困難的是 code review 環境,只能用 ssh x11 forwarding 或是 RDP,不知道為啥我的 windows 11 host 開 rdp 超靠北慢,延遲十幾秒,官方沒有提供 ssh x11 forwarding 的教學文,我自己估狗弄一直設不好,倒是意外開成了 vscode ssh-remote,我用了快一小時才注意到,趕緊問考官能不能用 ssh-remote ,沒意外又得到 exam guide 連結,我詳細看完 exam guide 的限制 「Remote mounting of application source code is not allowed (e.g. using sshfs, sftp etc.)」 還有 vscode 的架構圖

"No source code needs to be on your local machine to gain these benefits since the extension runs commands and other extensions directly on the remote machine."

這裡有提到 ssh-remote 不算是 sshfs,更不可能是 "mount",這樣看來 remote-ssh 頂多算是良好 GUI 介面的 ssh shell (?)

考後再加碼問 ChatGPT

雖然 exam guide 還有另一條「Downloading any applications, files or source code from the exam environment to your local machine is strictly forbidden.」實際上沒意義,因為 LFI 之類的都能看到 source code,甚至儲存於 Burpuiste project,只要不是故意想載整個考試環境 source code 都不會踩線,vscode remote-ssh 只會顯示必要的部分,就如同 Lab 裡附的 Browser-based vscode 一樣,如果 OffSec 這些限制是基於商業上保護版權的考量,沒道理 Lab 能用 browser-based vscode 考試卻禁止 vscode remote-ssh。

總之考官要給考生自行判斷,我查證完就當可以囉 speed up+++++++++++++++++++++++++++++++++++++++

唯一的難關弄完後效率爆增,後面順順的考完了。

OSWE 考試相當健康,正常吃正常睡,還能耍廢。我大多時間都花在寫 Exploit 和報告,報告一樣用官方模板,需要截圖 code 解釋原因還有解釋 Exploit,我寫的很詳細,幸好他沒刁報告扣分。

考完後呃有學到什麼又沒學到什麼的感覺,CTF 世界太卷,有閒錢可以考這張來增加信心(?) 大概是 EOF Final easy~medium 題

對了教材本身沒寫,大量 code review 過程可以試著練習怎麼創造一堆神奇的 Regex 來快速打撈漏洞,有閒也能弄個 AST 分析更精確的找出 pattern。

還要考 OSCP+ ....救命