前言
在本地跑起来一堆问题。
过程
设置环境变量
COMPOSER_PATH=C:\Users\24217\AppData\Local\ComposerSetup\bin\composer.phar
PHP环境变量一般安装都自带了。
添加异常处理,不然运行会直接oserror退出了
try:
if self._try_run_command(php_file):
return (php_file,)
except OSError:
if path.exists() and self._try_run_command(self._php_path, php_file):
return (self._php_path, php_file)
这里可以加一个print,方便调试。
def _run(self, *args):
"""Runs a program with given arguments."""
print("this is args:")
print(args)
return subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
test_payload.php
,给第一个参数PHP_BINARY
加一下引号,不然路径中如果有空格会报错。
$output = shell_exec(
'"'.PHP_BINARY.'"' . ' ' .
escapeshellarg(DIR_LIB . '/test_payload.php') . ' ' .
escapeshellarg($vector) . ' ' .
escapeshellarg(base64_encode($payload))
);
测试时,有时候,包下载不下来,难搞。
使用monolog测试就可以正常
& "D:/Program Files (x86)/Python/python.exe" d:/git_proj/phpggc/test-gc-compatibility.py monolog/monolog:2.3.0 monolog/rce1 monolog/rce3
但是使用laravel时,package就显示KO,。。。
& "D:/Program Files (x86)/Python/python.exe" d:/git_proj/phpggc/test-gc-compatibility.py laravel/laravel:5.4.0 Laravel/RCE9
感觉本地环境有点不太好弄,项目也提供有docker,用docker试试。
docker安装也有问题,靠,不搞了🙁