1. 程式人生 > >第九屆極客大挑戰——怎麼又是江師傅的祕密(java反序列化)

第九屆極客大挑戰——怎麼又是江師傅的祕密(java反序列化)

引言:因為太想加入三葉草了,所以極客大挑戰這段時間一直在努力的學習,原來還真沒想到能在比賽中拿到排行榜第一的成績,不過現在看來努力始終都是有回報的。但我依然還是比較菜啊-.-,最近卻有很多夥伴加我好友,一來就叫我大佬,讓我深感有愧-.-,既然都想看我wp,那我就挑幾道題寫寫好了,口拙詞劣還望見諒。

 

這道題其實是考jsp和java的,我沒學過jsp,java倒是有一點了解,但是剛拿到題的時候還是看不懂java程式碼裡的內容,所以去簡單學習了下jsp(jsp教程),按照教程裡的步驟搭建了eclipse 環境並開啟這道題提供的專案原始碼在本地進行除錯,然後又去百度了原始碼中的各個java函式,大致理解了整個web應用的邏輯。

 

先看下UploadServlet的內容,由前端上傳的檔案會首先通過這裡進行處理(java序列化和反序列化

 

TorrentFile的內容

 

所以只要上傳一個moviePath為 "/jiangjiang/secret/flag.avi" 的 TorrentFile物件的 序列化檔案 即可,直接在UploadServlet中寫程式碼,new 一個TorrentFile的物件,然後賦值MoviePath,最後寫到檔案

在本地執行修改後的web應用,先隨便上傳一個檔案,即可在E盤得到上述序列化檔案

 

最後直接開啟解題連結,上傳file.txt即可得到flag

 

 如果本來就有java環境的話,其實把class複製過來,直接new一個,然後再序列化得到檔案即可