2017年6月 - 勾陈安全实验室

2017年6月

MAMP远程代码执行漏洞

前言

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

原文:Drive-by remote code execution by MAMP

环境配置

安装MAMP

  • 下载MAMP后开始安装

a6cc4662d0ba196f5413a113e1e2875a.png

  • 然后初始化时,会提示是否安装phpMyAdmin,我用不上那个没有勾选。

启动MAMP

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

828caeccd80fde53b94eb046792b398b.png

漏洞复现

打开sqlitemanager地址:http://localhost:8888/sqlitemanager/

9375ab9b41b9312a3f1a8cc32c7fe7ca.png

利用目录跳转漏洞,漏洞位置:

0044945becdede38fb0ed450b7e1035a.png

这里没有校验写入位置和写入文件格式,可以利用…/…/在任意目录下创建你想要的文件。于是,在根路径下创建一个名为threathunter.php的数据库文件

d41f1fd545386d0ff7168f910e526a29.png

创建成功:

924f4f4883922c7b790aff105f391c16.png

下面就是常规套路,将一句话写入数据库中了。先创建一个表poc:

5f329c5e8c0dfe0385e55e6c6d4ed87b.png

指定字段名:

af9ceb2e292d7bc7d63e0633573c7e63.png

98ff56e92b681d90d974ae76d967ed2b.png

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

d4980a91b86bc807c6772cf0dd8c1749.png

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

597938d854d2885b7d85cc3d6eb7fb3d.png

提供一下我用的这个破解版的MAMP下载地址:

https://pan.baidu.com/s/1kU5yElp 密码: 2mnx 安装密码:macpeers

网上查了下,发现这个组件在2013年就爆出的这个漏洞。 SQLiteManager 0Day Remote PHP Code Injection Vulnerability

查看了下该组件项目最近一次更新居然远在2010年,最新版本即为1.2.4(全版本都存在那个0day),官方应该是废弃这个项目了!

acebe3db745e4961430bdfdaf8a98ab9.png

修改建议

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

透过F5获取服务器真实内网IP

前言

渗透测试过程中,经常会遇到目标服务器使用F5 LTM做负载均衡。

如果能获取到目标服务器的真实IP地址,会给后续渗透带来一定便利。

本文既是最近渗透遇到的一点点经验分享。

F5修改cookie机制

F5 LTM做负载均衡时,有多种机制实现会话保持。

其中用到很多的一种是通过修改cookie来实现的。

具体说来,F5在获取到客户端第一次请求时,会使用set cookie头,给客户端埋入一个特定的cookie。

比如:

Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000

后续再接到客户端请求时,F5会查看cookie里面的字段,判断应该交给后续哪台服务器。

作为传统大厂,F5当然不会傻到直接把服务器IP address写入到cookie里面。

F5很巧妙的把server的真实IP address做了两次编码,然后再插入cookie。

所以,只要依据解码流畅,解开487098378.24095.0000的内容,就拿到了server的真实IP address。

解码思路

  • 首先,把第一小节的十进制数取出来,也即,487098378
  • 第二,将其转为十六进制数1d08880a
  • 第三,从后至前,以此取四位数出来,也即,0a88081d
  • 第四,依次把他们转为十进制数:10136829
  • 最后,得到真实内网IP:10.136.8.29

总结

严格意义上说,只有内网的私有IP,对正面突破目标防线的帮助并不明显。但是,当需要做内网渗透和漫游的时候,这一点信息还是有价值的。再不济,写report的时候,如果实在没的可写的时候,还可以拿这点作为一个issue作为丰富report的素材。