tkcharlotte's blog

起因

最近在做内部靶场平台题目,其中一道题为爆破一句话木马,拿到key的值。

经过

木马密码可以通过burp爆破得到

祭出菜刀,连上一句话,发现权限被限制的很死,基本关于文件操作以及命令执行的函数都被禁用了..

但是没有禁用file_get_contents函数,所以可以直接读取文件获得key。

如果在实际中遇到这种环境,函数被禁,怎么绕过disable_function

绕过姿势,一般有这么几种:

  • 寻找未被禁用的函数

  • 系统组件绕过

  • 通过LD_PRELOAD绕过

  • mod-cgi 绕过

  • 执行自定义语句(自己实现函数功能,通过webshell执行)

第一种 敏感函数

整理一下经常用的各类函数,方便查找。

php中读取文件可以使用以下函数:

1
2
3
4
5
6
7
readfile
fread
file_get_contents
var_dump(file(file_name)) // file函数返回值位数组
show_source
hightlight_file
......

php中可以执行命令函数有:

1
system,exec,shell_exec,passthru,pcntl_exec,shell_exec,mail,imap_open,imap_mail,putenv,ini_set,apache_setenv,symlink,link

列目录函数:

1
2
3
4
5
6
7
opendir
scandir
glob('*')
$path = dirname(__FILE__);
$result = glob($path.'/*.php');
print_r($result);
...
第二种 三方组件

利用系统存在的组件漏洞执行命令,扩大战果。

  • Bash漏洞导致命令执行
  • ImageMagic绕过
  • imagecreatefromgd2
  • sendmail
第三种 LD_PRELOAD

使用LD_PRELOAD

程序执行时要在动态链接库.so中寻找函数位置,这种绕过方式就是让程序去执行自定义的动态链接库,类似于mysql下的udf提权或者redis主从复制RCE方式。

LD_PRELOAD这个全局变量指定动态链接库文件,会在程序运行之前加载。

1
export LD_PRELOAD = XXX/xx.so

如果可以上传文件,我们可以通过上传一个恶意的.so库文件,然后加载该文件。最后绕过php层面执行命令函数。

推荐一个复现环境:

https://github.com/obolu/Bypass_Disable_functions

第四种 mod_cgi+.htaccess

在启用mod_cgi的apache服务器中,必须允许.htaccess以及有可写权限,要求有点苛刻。

在apache配置中有Options以及Addhandler指令,前者用来控制目录选项,比方说是否允许目录遍历,是否允许访问等,后者用来指定特定后缀名的文件所对应的处理方式,在解析漏洞中就有这样的用法,上传带少见后缀的恶意文件,修改.htaccess文件达到执行代码的目的。

这种绕过方式就是通过将要执行的程序写入带有特定拓展名的文件内,修改.htaccess文件,将恶意文件交给cgi处理。

具体的原理可以查阅 https://www.cnblogs.com/hookjoy/p/8988862.html

第五种 自定义语句

通过编写php代码,用php最基础的底层函数实现一些被禁用的函数。

在本题目中,常见的列目录函数被禁用,包括readdiropendir等函数,可以使用自定义语句列目录,也可以使用scandir函数。

想到可以读其他路径文件,说不定可以读到一些服务器的敏感信息啥的,看一下phpinfo中的open_basedir配置,限定了访问目录,只能访该题目所在目录。

查阅资料后发现,可以通过glob伪协议绕过限制,读取栏目。

1
2
3
4
5
6
$path = dirname(__FILE__);
$result = glob($path.'/*.php');
print_r($result);

//简化版
$a = "glob:///*";print_r(scandir($a));

可以看到读到了根目录,但是没有足够权限读取/root/下的文件。需要借助其他的方式提升权限。

最后发现该靶机是一台虚拟主机之类的单独空间,没有其他题目的key,== ! 姜还是老的辣啊2333

最后附上l3m0n大佬的github链接,里边记录了各种绕过姿势

https://github.com/l3m0n/Bypass_Disable_functions_Shell

参考链接

https://www.anquanke.com/post/id/175403

https://www.tr0y.wang/2018/04/18/PHPDisalbedfunc/index.html

 评论


载入天数...载入时分秒... | 字数统计:18.1k