HITCON 2013 Wargame - Pwn3d 500 詳解

之前在 tw.PyCon.org 2013 上有分享到 Django 在 SECRE_KEY 洩漏的情況有機會造成 Remote Code Execution,這個 Pwn3d 500 就是那次演講的實例 (演講投影片)

Django 有個可愛的 feature 叫做 Signed Cookie,Signed Cookie 實作上是透過 Pickle 物件去儲存 Python 中的 Object 並使用 SECRE_KEY 用 sha1 + hmac 去做出 signature 判斷 COOKIE 有沒有被偽造

Django Apps 的 source code 在 Guthub 上,相對的 solution 如下