Joomla 3.4.6 RCE 漏洞分析,首发先知社区: https://xz.aliyun.com/t/6522
漏洞环境及利用
- Joomla 3.4.6 : https://downloads.joomla.org/it/cms/joomla3/3-4-6
- PHP 版本: 5.5.38
- Joomla 3.4 之前(包含3.4)不支持 PHP7.0
- 影响版本: 3.0.0 --- 3.4.6
- 漏洞利用: https://github.com/momika233/Joomla-3.4.6-RCE
漏洞成因
- 本次漏洞主要是由于对 session 处理不当,从而可以伪造 session 从而导致 session 反序列化
漏洞分析
session 逃逸
-
session 在 Joomla 中的处理有一些的问题,它会把没有通过验证的用户名和密码存储在
_session
表中 -
在登陆过程中,会有一个 303 的跳转,这个 303 是先把用户的输入存在数据库中,再从数据库中读取、对比,即先执行
write
函数在执行read
函数 -
而且它的 csrf token 也在前端页面中
-
这两个函数位于
libraries/joomla/session/storage/database.php
中,内容如下: -
可以看到,它在写入的过程中将
x00*x00
替换为