PHP反序列化专题
第60天:PHP反序列化&POP链构造&魔术方法流程&漏洞触发条件&属性修改
序列化就像是家具作为零件被打包便于运输,而反序列化就是组装起来,恢复应有的功能
unset实现销毁,这样能演示construct和destruct触发两次
看到xiaodi,讲invoke魔术方法里面有参数,那如果在类外面的对象当作函数使用时,函数的参数个数不匹配,会触发invoke吗「GPT骗我说会触发」
1 | //PHP 会先触发 __invoke(),然后再检测参数个数是否匹配,如果不匹配会抛出一个 ArgumentCountError,不是说不会触发,而是触发了然后报错 |
之前专门学过PHP反序列化,发现小迪还是讲的很快的
发现小迪举的例子真的很好:类A里cmd变量和destruct方法system,类外反序列化(Get传参数x),之后有无new 类A触发反序列化的演示,最后Get传参数达到RCE
destruct是为了效率吗
实战不问如何发现反序列化漏洞,而问如何利用
白盒扫描器发现,而非黑盒发现,那么java呢
渗透资源还是少,越往上学越是(漏洞学习到复现到实战挖洞),不像开发,很多细枝末节的问题能搜到
第61天:PHP反序列化&原生类TIPS&字符串逃逸&CVE绕过漏洞&属性类型特征
1小时半开始听
php.ini注释soap
之后再次生成魔术方法的原生类
woc,这个原生类之前我是真的一点都不知道,还是孤陋寡闻了,Exception的tostring弹出XSS「exception会把报错回显出来,你只要构造一个exception类对象给他反序列化了那不就相当于调用toString魔术方法了,把内容改成xss就弹窗了」
确实,原生类像是JNDI之类的
之前不知道原生类,所以写这题的时候一直没搞懂soap,以及和反序列化有什么关系
最后还是要认真看
第62天:PHP反序列化&CLI框架类&PHPGGC生成器&TP&Yii&Laravel等利用
挖框架漏洞:需要开发、代码审计、漏洞的理解
网上的框架漏洞可能POC不公开或分析过程看不懂,怎么办:工具解决反序列化链太过复杂,用工具生成PHPGGC
YII为什么这个不需要backdoor前面加///
我去,直接访问flag不回显,还需要cp到静态的txt下再访问,还需要flag改为通配符
别的行业可能因为隐私、引流、等缘故,但网安比如隐藏EXP,因为放出来真实的场景违法
最后讲了序列化Web界面到IIS(VPS)上的安装