Day2
flag.php(點了login咋沒反應)
本題要點:代碼審計、反序列化、cookie
打開鏈接發現:
查看源碼什么也沒有
注意,題目說明中 提示是hint,試試get一個hint參數,得到源碼
代碼審計:
(參考了很多大佬們的writeup,鏈接會放在本文最后)
我們可以看到
代碼邏輯是傳入的cookie參數的值反序列化后等於KEY就輸出Flag,一開始以為$KEY的值是最下面的ISecer:
www.isecer.com,結果忙活了半天發現這里其實上面$KEY的值還沒有被定義,上面代碼中$KEY的值應該是NULL,而不是下面的值,所以應該是反序列化的值為NULL.
若unserialize($cookie)全等於$KEY,這里注意有雙引號,大體意思是:cookie的參數為ISecer,值為$KEY的序列化
之所以序列化的$KEY不為'ISecer:
www.isecer.com',是因為定義的$KEY在后面,所以執行的$KEY為NULL
用在線的php代碼測試網站測試一下
可以看到serialize($KEY)的值為 s:0:""
現在我們來用bp抓包
(這里不知道什么原因沒有抓到cookie,求大佬們指教)
所以手動在headers里添加了cookie
Go一下就得到了flag
也可以通過hackbar插件來完成此操作
構造cookie :ISser = s:0:"";
注意 ; (分號)在cookie中不會被正確的上傳到服務器,構造URL編碼
;的URL編碼為%3B
於是在火狐的HackBar插件中傳入Cookie ISser = s:0:""%3B
完成!
參考資料:
