bypass_disable_function on php 7+
去年的笔记,放上来除草
0x00 漏洞原理
其中一个为php gc中的一个释放后重用漏洞,由ryat(陈韬光)发现提交。
影响版本:
- 7.0 - all versions to date
- 7.1 - all versions to date
- 7.2 - all versions to date
- 7.3 - all versions to date
另外一个是JsonSerializable的释放后重用漏洞,由nikic 发现提交
影响版本:
- 7.1 - all versions to date
- 7.2 < 7.2.19 (released: 30 May 2019)
- 7.3 < 7.3.6 (released: 30 May 2019)
0x01 Exp
0x02 利用平台
linux
0x03 漏洞效果
bypass_disable_funciton 执行任意命令
0x04 实际利用
其中php gc的释放后重用漏洞,能够稳定在多个php在线运行沙盒执行
sandbox.onlinephpfunctions.com 禁掉了gc_collect_cycles()函数
而JsonSerializable的话,则不是很稳定,偶尔需要调一下参数
tool.lu稳定执行
dooccn.com 调值好像也不行
但sanbox这个却可以稳定打
认真对比会发现,国内的几个平台都直接用的root权限,没有划分权限
同时也发现了一些修复的方法,比如gc的禁掉gc_collect_cycles()
0x05 总结
整体上GC的那个更加稳定,如果GC不行,那么就可以用JSON那个打试一下,不行再调大值多打两次