想了想,还是把记录都放在csdn吧,毕竟也待了大半年了。自己整了个公众号:“不爱吃韭菜的韭菜”,也懒得到处转发,就当是另外一个存货站吧。实习2个月,考试找工作一个月,很久没发东西了,写倒是写了很多东西,但是都不太方便发出来,只能自己珍藏。
joomla远程代码执行漏洞
Joomla <= 3.9.15
本来这里是有好大一段白盒分析的,跟踪了很久,但是吧,分析完了之后感觉不对劲= =。发现其实这个漏洞就是一个正常的功能,所以把分析过程删掉了= =。(PS:分析过程很有意思,4、5个save函数之间跳来跳去。)
下载链接: https://downloads.joomla.org/cms/joomla3
管理员权限账号登录进来: 点击style: 点进去: 随便找个php文件进行编辑: 编辑之后进行保存: 访问:/templates/protostar/error.php 我眉头微微一皱,知道事情没这么简单。以前看到过这种漏洞,我一直都觉得它是正常的功能。果不其然,我在最新版本的joomla里面,发现该情况依然存在,说明可能是未授权或者其他情况导致的。
找真正原因的思路:
1.一开始以为是有未授权,但是发现源码里面进行了校验,并没有未授权 2.然后以为存在csrf,虽然未校验referer,但是存在不可猜测的token,也不是 3.第三次我以为是cookie的内容可以自己加密伪造,不过这个分析起来我觉得的很麻烦,被我搁置在一边 4.第四次才想起来越权= =,这也不算越权,就是权限分配不当比较了两次的发包,这是旧版本的: 这是新版本的:
有一点不同,而且多出来的两条可以删除成这样,其实也就是认证字段换了个名儿:
然后我创建了一个新的账号,终于找到了这个漏洞的重点= =。 这是管理员的权限:
这是新建账号的权限,必须要属于administrator才可以,不需要super users:
发现除了administrator组和super users组之外的组都不能改文件,只有他俩可以。
最新版本的super组依然可以更改,但是administrator组的就不能改了,点进去没有编辑页面,只有这样子了:
说明,这个漏洞的重点,是给其他组的用户权限过大,导致rce。如果泄露了super users组的用户密码,还是会导致rce。
不过我寻思= =要是让我碰见这个情况,我肯定不会觉得它是漏洞- -我会觉得这就是正常的权限分配吧。