项目链接:php-SER-libs
一,开始之前
小白经过了一段时间的学习,总算入门了php反序列化。
回顾学习的历程,万分感慨,从2月10日到3月18日,本以为一个月的时间能够完成的项目却因为各种原因导致超期了6天,不过能够完成这个项目我就已经心满意足了。
这段时间以来,小白学习了很多东西,就不一一细说了,有图有真相:
二,项目介绍
项目链接:php-SER-libs
1说明
本项目是一个php反序列化靶场。
在学习反序列漏洞的道路中,最首要的就是掌握类和对象的基础知识,懂得php的基本语法。本项目关卡由易至难,建议广大萌新们全部掌握。小白技术一般,还请广大黑客朋友们见谅~~~
本着分享学习的目的,本人仅提供exp,并不提供完整的wp,绝对不是太懒的原因~~~
以下内容 或来自提取的CTF考点,或来自个人的理解与整合,均不涉及原题。如有错误,还请见谅~~
2环境
通过PHPstudy,搭建简易wamp环境。
请根据表格内容自行更换及安装php版本和扩展(若无要求,自行斟酌)。
不会吧,不会吧,不会真有人配了个php<=5.0版本的然后说环境搭不起来吧。
关卡 | 不适用其他版本的原因以及相关设置 |
---|---|
level4 create_fucntion与可变函数调用 | 5.6不支持可变函数,7.2已废除create_function |
level5 序列化格式过滤与CVE-2016-7124 | CVE-2016-7124漏洞影响版本:PHP5 < 5.6.25,PHP7 < 7.0.10 |
level6 私有属性反序列化 | escaped binary string(仅从php6开始支持) |
level7 __call与属性的初始值 | 同上 |
level10 just_one_soap | 需要开启soap扩展(php5.6:extension=php_soap) |
level11 a phar 和 level12 a phar trick | php.ini中phar.readonly=Off(若有分号则去掉) |
level13 引用和session | session.auto_start=0; session.serialize_handler = php;(level13均为默认设置) |
leve14 session.upload_progress | session.auto_start=0; session.serialize_handler = php_serialize; session.upload_progress.enabled = On; session.upload_progress.cleanup = Off; session.upload_progress.prefix = “upload_progress_”; session.upload_progress.name = “PHP_SESSION_UPLOAD_PROGRESS”; session.upload_progress.freq = “1%”; session.upload_progress.min_freq = “1”; |
3 关卡
level1 类的实例化
level2 login
level3 relogin
level4 create_fucntion与可变函数调用
level5 序列化格式过滤与CVE-2016-7124
level6 私有属性反序列化
level7 __call与属性的初始值
level8 反序列化增逃逸
leve9 ezpop
level10 just_one_soap
level11 a phar
level12 a phar trick
level13 引用和session
leve14 session.upload_progress
三,补充
1参考
由于参考内容较多,链接就不一一列出了,关卡设置的内容和顺序有70%参考自y4大佬的博客,需要的小伙伴可以结合以下链接自行学习。
https://y4tacker.blog.csdn.net/article/details/113588692
2建议
先学习php类与对象的基础知识,再学习本项目。
3其他
如有错误,还请留言指正,感谢各位的支持和评论。