MAMP远程代码执行漏洞
发布于 2 年前 阅读权限 无需登录 作者 cf_hb 2824 次浏览 来自 案例分享

MAMP 是一个集PHP,MYSQL,Apache等一体化PHP Web应用程序开发套件,今日国外研究者发现MAMP的默认的安装配置中存在远程代码执行漏洞。本文记录复现过程。 原文: Drive-by remote code execution by MAMP

安装MAMP 下载MAMP后开始安装 image.png 然后初始化时,会提示是否安装phpMyAdmin,我用不上那个没有勾选。 启动MAMP

安装后不做任何修改,默认配置下启动MAMP服务

image.png

复现漏洞过程

image.png

  1. 利用目录跳转漏洞 漏洞位置: image.png 这里没有校验写入位置和写入文件格式,可以利用…/…/在任意目录下创建你想要的文件。 于是,在根路径下创建一个名为threathunter.php的数据库文件 image.png 创建成功: image.png 下面就是常规套路,将一句话写入数据库中了 先创建一个表poc image.png 指定字段名: image.png

image.png 点击上面的Insert插入一条记录: image.png

然后保存,现在可以访问: http://localhost:8888/threathunter.php 验证了 image.png

提供一下我用的这个破解版的MAMP下载地址: https://pan.baidu.com/s/1kU5yElp 百度云密码: 2mnx 安装密码:macpeers

网上查了下,发现这个组件在2013年就爆出的这个漏洞。 SQLiteManager 0Day Remote PHP Code Injection Vulnerability 查看了下该组件项目最近一次更新居然远在2010年,最新版本即为1.2.4(全版本都存在那个0day),官方应该是废弃这个项目了! image.png

修改建议 删除默认集成的老旧的sqlitemanager, 默认在目录:/Applications/MAMP/bin/SQLiteManager 删掉即可。

2 回复

不知道这个管理器默认是不是允许加载sqlite 扩展,允许的话可以直接加载dll获取shell也是一个小方法 https://sqlite.org/loadext.html

Mac下看了下:

~>>> brew info sqlite3
sqlite: stable 3.19.3 (bottled) [keg-only]
Command-line interface for SQLite
https://sqlite.org/
/usr/local/Cellar/sqlite/3.19.3 (12 files, 2.9MB)
  Poured from bottle on 2017-06-11 at 19:07:05
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/sqlite.rb

brew上的版本没测试,本地的

~>>> sqlite3 --version
3.16.2 2017-01-06 16:32:41 a65a62893ca8319e89e48b8a38cf8a59c69a8209

.help 看了下好像没有 .load 命令,是不是和编译选项有关系?

回到顶部