HACK80

作者: djg222000
查看: 284|回复: 0

more +随机图赏Gallery

2017年中旬WEB渗透系列课程-25基于php参数开关的提权2017年中旬WEB渗透系列课程-25基于php参数开关的提权
社工库查询工具1.1修改版社工库查询工具1.1修改版
(公开课)SQLMAP第七课之Tamper插件使用(公开课)SQLMAP第七课之Tamper插件使用
论坛新版IOS及Android客户端内测论坛新版IOS及Android客户端内测
(公开课)SQLMAP第八课之file参数使用(公开课)SQLMAP第八课之file参数使用
2017年中旬WEB渗透系列课程-00前言2017年中旬WEB渗透系列课程-00前言
2017年中旬WEB渗透系列课程-24提权分类2017年中旬WEB渗透系列课程-24提权分类
小迪15期的视频教程小迪15期的视频教程
2017年中旬WEB渗透系列课程-27HASH提权2017年中旬WEB渗透系列课程-27HASH提权
2017年中旬WEB渗透系列课程-21webshell免杀相关问题2017年中旬WEB渗透系列课程-21webshell免杀相关问题

PhpMyAdmin某版本无需登录任意文件包含导致代码执行(可getshell)漏洞分析

[复制链接]
djg222000 发表于 2018-2-4 08:11:11 | 显示全部楼层 |阅读模式
查看: 284|回复: 0

马上注册,加入HACK80!与我们一起交流。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
前言
这个漏洞来源于路人甲在wooyun提交的漏洞
漏洞编号: WooYun-2016-199433
4月12日也曾在t00ls发表过,但是帖子关闭了
(详细漏洞文档可进群索取)
分析
存在漏洞的已知版本为 2.8.0.3 其余版本未知
本次测试的版本为2.8.0.3
看存在漏洞的文件代码
/scripts/setup.php
把传入的configuration给反序列化,而这个setup.php中引入了common.lib.php
来到common.lib.php
common.lib.php中引入了Config.class.php
再看看Config.class.php:
继续看load方法:
Config.class.php中含有__wakeup魔术方法,因此可以构造序列化参数,造成反序列化漏洞
所以整个思路就是:
setup.php->common.lib.php->Config.class.php->__wakeup()->load()->eval();
漏洞验证
构造个简单的poc:
测试在mac下:
Win下:
提供一个PHP版PoC:
Getshell
  • 利用方式一
但是经过分析这个漏洞是不能读取php文件的,因为有了eval(),相当于任意文件包含了,不过另一方面这也是有好处的,如果能写入文件,文件中包含一个一句话就可以直接getshell了。作者给的方式是用error log。
根据作者的方法,使用默认环境,才发现有点鸡肋,比如,在ubuntu下,一般是不允许用root权限运行,实际测试中,我们是无法读取access.log的,所以getshell就比较困难。在windows下,由于几乎所有的浏览器和python模块都会很“自觉地”将特殊字符编码进行转换”,getshell就更困难了,所以只能用socket去构造shell。

Access log中就出现了shell了。
再用任意文件包含漏洞去包含,就可以拿到shell了。
  • 利用方式二
PoC修改为如下:
通过FTP直接远程利用获取shell
前提是看file_get_contents可不可以远程(默认是开启的)
感谢passenger提供思路
影响范围
存在漏洞的已知版本为 2.8.0.3 其余版本未知
许多内网的系统都在用这个版本,外网的也绝非少数!
修复建议
  • 尽快升级到最新版
  • 将setup.php中28行中的”configuration”改为传入其他值
  • 直接删除scripts目录,防止被恶意攻击。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|HACK80 ( 沪ICP备15007512号 )

GMT+8, 2018-2-18 07:11 , Processed in 0.059068 second(s), 24 queries .

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.