[極客大挑戰 2019]PHP
知識點:
1.網站的備份文件:www.zip
2.Php 反序列化漏洞:當反序列化字符串時,如果表示屬性個數的值大於真實屬性個數,就會跳過_wakeup函數的執行
備份泄露,應該可以用工具掃目錄掃出來,但是不知道為什么用御劍和dirbuster都掃不出來。直接在url后面輸入www.zip,可以獲取到網站的備份,打開以后可以看到有三個php,一個個看過去
下載下來的flag.php里的flag顯然不是正確答案。繼續看。重點是class.php,可以看到php的魔術方法,應該存在php反序列化漏洞.
仔細看一下代碼
index.php ,會調用class.php,以及對輸入反序列化
而反序列化后調用_wakeup會直接覆蓋輸入的用戶名。一個簡單的辦法是直接在class下面創建一個對象然后序列化。
然后因為要繞過wakeup,把Name后的數字改成3.因為username和password是私有變量,變量中的類名前后會有空白符,而復制的時候會丟失,所以要加上%00
最后payload:
O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}
提交得到flag