台電 Bug Bounty 參加記

前言

去年參加了台電舉辦 Bug Bounty 競賽,運氣好刷到第二名,個人認為蠻適合想接觸 Bug Bounty 的人來挑戰。

所以這篇主要介紹台灣的 Bounty Program 和去年參加完台電 Bug Bounty 的一些心得跟遊記,希望能讓有興趣接觸 Bounty 的人看完後也可以找到一點方向。

DEFCON 30 CTF Final 參加記

前言

這次是我第五年打 DEFCON CTF Final,也是第三次飛 Las Vegas 現場。

前兩年決賽都因為 COVID-19 疫情的關係而沒辦法到現場比。

今年是 Balsn 和 TSJ 跟 217 組成的大聯隊(Balsn.217@TSJ.tw),但其實大部分老人都已經退休,幾乎都是年輕人在打。

所以整團大概有一半以上的人都是第一次去 Vegas,也有一半的人我叫不太出名字XD

台灣部分也有為數不多的幾個人在 Remote 幫忙看題,因為美國和台灣幾乎日夜顛倒,這樣剛好可以接關美國這邊的進度。

每次去 Vegas 都要寫遊記好像已經變成一種傳統,所以這篇就一樣來記錄一下這趟比賽行程的各種事情吧!

順便拯救一下荒廢兩年、長滿草的 Blog XD

(圖多慎入)

Java 反序列化之 CommonCollections1 分析

前言

Common Collections 反序列化漏洞歷史在上一篇文章中有稍微提過

這個漏洞在 2015 年時,對整個 Java 生態系造成不小的影響

後續也愈來愈多奇形怪狀的 Gadget chain 被大佬們一一挖出來

而本篇文章就以 ysoserial 中經典的 CommonCollections1 這條 Gadget chain 來做分析

雖然網路上類似本篇的分析文很多,但只看文章其實很難體會到 java gadget chain 裡頭的精髓

強烈建議大家有興趣、有時間的話,可以自己拉原始碼下來跟一遍,相信可以收穫更多 !

p.s. 這裡我分析的版本是 Common Collections 3.1JDK 8

Java 反序列化之 URLDNS 與 GadgetProbe

URLDNS 分析

URLDNS 是 ysoserial 工具裡面的一條 gadget chain

其主要目的是能夠對指定的 URL 發送 DNS Query

由於它不需要依賴第三方函式庫,原生 JDK 就能夠串起整條 Gadget Chain

所以一般在測試反序列化時,常會以 URLDNS 是否有發送 DNS 請求來判斷反序列化漏洞存在與否

尤其在實戰中常遇到嚴苛的網路環境限制,使得 HTTP/HTTPS 無法對外請求,只能透過 DNS 對外發送查詢請求


今天這篇主要就是來分析 URLDNS gadget chain 背後的原理,以及一些延伸的小應用

由於 URLDNS gadget chain 概念非常單純,所以非常推薦新手學習 Java 反序列化時,可以先從這個 gadget chain 開始看起

若直接從 Common Collections 系列或更複雜的利用鍊開始看,會相對來說吃力很多,很容易降低學習的熱情


Java 反序列化之 readObject 分析

前言

近期上班有點忙,沒有太多空閒時間能學新東西

剛好前陣子蠻常遇到 java 反序列化,就用下班後的零碎時間稍微小跟了一下 readObject() 底層流程

雖然都是萬年老梗內容,但還是順手筆記一下追 code 的過程

大家都很熟 readObject 用法,但應該很少人實際去追過底層 (?)

(同時也順便更新一下很久沒放技術文的 Blog XD)