主页 > 网络知识 > 绕过Disable Functions来搞事情(9)

绕过Disable Functions来搞事情(9)

该漏洞利用在debug_backtrace()函数中使用了两年的一个 bug。我们可以诱使它返回对已被破坏的变量的引用,从而导致释放后使用漏洞。

利用脚本:https://github.com/mm0r1/exploits/tree/master/php7-backtrace-bypass

利用方法

利用方法和GC UAF绕过disable_functions相同。下载利用脚本后先对脚本像上面那样进行修改,然后将修改后的利用脚本上传到目标主机上,如果是web目录则直接传参执行命令,如果是其他有权限的目录,则将脚本包含进来再传参执行命令。

利用 Json Serializer UAF

使用条件:

Linux 操作系统

PHP 版本

7.1 - all versions to date

7.2 < 7.2.19 (released: 30 May 2019)

7.3 < 7.3.6 (released: 30 May 2019)

原理简述

此漏洞利用json序列化程序中的释放后使用漏洞,利用json序列化程序中的堆溢出触发,以绕过disable_functions和执行系统命令。尽管不能保证成功,但它应该相当可靠的在所有服务器 api上使用。

利用脚本:https://github.com/mm0r1/exploits/tree/master/php-json-bypass

利用方法

利用方法和其他的UAF绕过disable_functions相同。下载利用脚本后先对脚本像上面那样进行修改,然后将修改后的利用脚本上传到目标主机上,如果是web目录则直接传参执行命令,如果是其他有权限的目录,则将脚本包含进来再传参执行命令。

我们利用 AntSword-Labs项目来搭建环境:

git clone https://github.com/AntSwordProject/AntSword-Labs.git cd AntSword-Labs/bypass_disable_functions/6 docker-compose up -d

搭建完成后访问 :18080:

 

image-20210210110522707

 

拿到shell后无法执行命令:

 

image-20210209215554190

 

查看phpinfo确定是设置了disable_functions:

 

image-20210209215640071

 

首先我们下载利用脚本:https://github.com/mm0r1/exploits/tree/master/php-json-bypass

下载后,像之前那样对脚本稍作修改:

 

image-20210209215856848

 

将脚本像之前那样上传到有权限的目录(/var/tmp/exploit.php)后包含执行即可:

/?ant=include("/var/tmp/exploit.php"); POST: whoami=ls /

如下图所示,成功执行命令:

 

image-20210209220146323

 

在蚁剑中有也该绕过disable_functions的插件:

 

image-20210209220737287

 

点击开始按钮后,成功之后会创建一个新的虚拟终端,在这个新的虚拟终端中即可执行命令了。

利用 SplDoublyLinkedList UAC

使用条件:

PHP 版本

PHP v7.4.10及其之前版本

PHP v8.0(Alpha)

引用官方的一句话,你细品:“PHP 5.3.0 to PHP 8.0 (alpha) are vulnerable, that is every PHP version since the creation of the class. The given exploit works for PHP7.x only, due to changes in internal PHP structures.”

原理简述

2020年9月20号有人在 bugs.php.net 上发布了一个新的 UAF BUG,报告人已经写出了 bypass disabled functions 的利用脚本并且私发了给官方,不过官方似乎还没有修复,原因不明。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!