POST: op=login&username=12\',\'1\'\); `whoami` 在我们的内网中发现了一个“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 该系统使用了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执行,最终导致了命令执行 |
|
来自: kaller_cui > 《网络空间》