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那个打试一下,不行再调大值多打两次

 

posted @ 2020-03-17 17:54  水泡泡  阅读(736)  评论(0编辑  收藏  举报