分享

原创干货 | 攻击集群控制系统—某集群管理系统漏洞挖掘

 kaller_cui 2020-02-14
01
漏洞详情
  • 某集群管理系统由于输入参数校验不正确,导致攻击者可以通过发送特殊构造的报文利用该漏洞远程执行命令。

  • 是否已通知并修复:是,已有补丁包并下发到客户

  • 修复日期:2019.11

02
POC


POST:

op=login&username=12\',\'1\'\);  `whoami`

03
发现过程

在我们的内网中发现了一个“xxx服务器群集管理系统”,该登录页面如下:

由于登录页面没有验证码,尝试爆破一个账户看看

爆破完成后发现了几个异常的返回包,POST的数据中如果带有;',响应数据包会返回异常。

我猜测这里可能存在一个RCE漏洞,随后将此数据包扔到repeater里进行重复测试,最后发现如果发布数据中有一个',系统将返回异常。

当我进一步测试时,我发现username参数或password参数如果包含',将引发此抛错。

所以我决定尝试发送(一个空格)来查看响应包。

服务端返回了grep命令错误,服务端的部分代码可能类似如下

var1 = `grep xxxx`var2 = $(python -c 'from crypt import crypt;print crypt('$username','$1$$var1')')

继续尝试发送-V和--help来查看响应包,响应包证实了我的猜测。

尝试读取/etc/passwd

反弹shell

04
简单分析

该系统使用了J2EE开发,根据web.xml中的信息,找到/login路由

看到调用了com.xxxxxx.xxxxx.login.Servlet

实例化了Management并调用了doResponse方法

这里需要op参数为login才可以进入login方法,回看login.js的登录方法

设置了op为login,继续返回login方法,发现了调用command类中的vertifyUser方法

该方法直接拼接了传入的username和password并调用com.xxxxxx.xxxxx.utils.ExecuteUtil类中的doCommand执行,最终导致了命令执行


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多