Java 反序列化之 CommonCollections1 分析

前言 Common Collections 反序列化漏洞歷史在上一篇文章中有稍微提過 這個漏洞在 2015 年時,對整個 Java 生態系造成不小的影響 後續也愈來愈多奇形怪狀的 Gadget chain 被大佬們一一挖出來 而本篇文章就以 ysoserial 中經典的 CommonCollections1 這條 Gadget chain 來做分析 雖然網路上類似本篇的分析文很多,但只看文章其實很難體會到 java gadget chain 裡頭的精髓 強烈建議大家有興趣、有時間的話,可以自己拉原始碼下來跟一遍,相信可以收穫更多 ! p.s. 這裡我分析的版本是 Common Collections 3.1 和 JDK 8 簡介 Apache Common Collections 主要是一個用來擴充原生 Java Collection 的一個第三方 Library (簡單說,就是一個擴充包的概念) 而 Collection 基本上就可以視為是 Set, List, Queue 等類別的抽象概念 所以 Common Collections 中提供了許多方式,能讓我們對這些 Collection 做操作 或是對各種資料結構做封裝、抽象化,簡化原本 JDK 中複雜的操作方式 例如後面會提到的各種 Transformer,最主要就是用來對這些 Collection 做內容轉換的 也因為它的方便性和實用性,所以許多框架預設都有引用這個 Library 導致一旦底層 Library 出問題,上面所有框架都會接連一起爆炸...

February 27, 2020

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 系列或更複雜的利用鍊開始看,會相對來說吃力很多,很容易降低學習的熱情 ...

February 26, 2020

Java 反序列化之 readObject 分析

前言 近期上班有點忙,沒有太多空閒時間能學新東西 剛好前陣子蠻常遇到 java 反序列化,就用下班後的零碎時間稍微小跟了一下 readObject() 底層流程 雖然都是萬年老梗內容,但還是順手筆記一下追 code 的過程 大家都很熟 readObject 用法,但應該很少人實際去追過底層 (?) (同時也順便更新一下很久沒放技術文的 Blog XD) ...

February 23, 2020

HITCON CTF 2018 Web

前情提要 今年跟Balsn, BambooFox, Kerkeryuan共四隊一起組成BFKinesiS 我主要都看Web的部分,雖然很多賽中都沒做出來,但賽後花了點時間檢討了一下 所以就把檢討內容和心路歷程及中間可能碰到的坑打成這篇 Baby Cake 題目給一個輸入url的地方 送出後,他會發Request去該url,並把Response Body/Header Cache在mycache/IP/md5(url)/下面 另外有給Source Code 稍微看一下,可以發現是用CakePHP寫的 ...

October 24, 2018

自己的Telegram BOT自己寫

前言 因為之前有在用別人寫的HITCON ZeroDay BOT 可是最近好像壞惹,都收不到通知 所以就想說,好吧,那就自己來寫一個吧! 開寫 首先,我想要的BOT功能是: 每天同一時間,自己爬HITCON ZeroDay 如果有新的Open漏洞,就傳通知給我 ...

December 31, 2017

EDU-CTF 計算機安全

前言 這堂課是台大、台科大、交大、中央(?聯合的資安課程 今年全上pwn跟reverse,跟前年不太一樣(前年還有教Web、Crypto…等) 這一篇文章主要放這門課作業和練習的Write up,記錄一下解法怕忘記 課程網站:https://csie.ctf.tw [hw0] Pwn 1 0x400566有個callme() 裡頭就是system("/bin/sh") overflow蓋return address跳過去即可get shell padding長度40 1 perl -e 'print "A"x40, "\x66\x05\x40\x00\x00\x00\x00\x00"' 1 FLAG{BuFFer_0V3Rflow_is_too_easy} ...

October 15, 2017

AIS3 2017 Workshop

![](https://i.imgur.com/jEhADhe.png width:70%) 前言 AIS3 workshop是AIS3上課的pwn跟SSRF練習平台。 因為平台好像關惹,我也懶得重搞環境打一次 所以下面解法很多都是憑著印象打出來的,有錯請見諒 lab1...

September 6, 2017

自組四軸初體驗

前言 從以前就一直對四軸相當感興趣 覺得身為理工人應該要玩個四軸才對,而且不應該買套裝成品,應該要自己組XD 然後最近因為研究歐拉角、姿態等問題,讓我有了想自己買零件組裝的衝動。 可是稍微做一下功課發現,如果要組一台F450機架大小的四軸(含遙控器),大概也至少要5000、6000以上。 於是我就忍痛賣掉一部分考研的書,賺了一些錢去某個沒屋頂賣場買了一組6500的套餐 但因為RX-701沒貨了,我就改買RX-601,老闆還因此只算我5000多而已,撿了一點便宜。 開箱和組裝 以下的開箱和組裝過程,不會詳細講每一步驟 如果想更清楚了解組裝過程,可以參考我最下面的參考資料 ...

July 29, 2017

AIS3 pre-exam 2017 writeup

前言 因為平常沒在打CTF,也很久沒認真碰這塊,所以最後只有31分 QAQ 然後這是我第一次參加AIS3,高手感覺好多,怕 UPDATE: 最後正取惹,我朋友8x、9x名也正取惹,所以要上應該算容易的(? Web 1 這題直接 1 curl https://quiz.ais3.org:42351/ 就看得到Flag了 ...

July 16, 2017

座標系、歐拉角與方位角

此篇文章為我在研究利用車載IMU判斷行進方向並預防事故的一些技術資料整理及個人理解。 可能在學術上不是很嚴謹,也有可能有地方有錯誤。 名詞定義上也可能和其他學術論文不同。 環境 *** IMU(Inertial measurement unit): 慣性測量單元 *** IMU包含加速度計、磁力計、陀螺儀等sensor 而IMU被包進後照鏡中,掛在車子上 目的是希望車子行進時,可以計算出車子的方向或是其他資訊來幫助後續處理 ...

July 4, 2017