目录:
漏洞成因
漏洞复现
场景提出及EXP编写
作者:水木逸轩@深蓝攻防实验室
01
漏洞成因
该漏洞为SSRF XmlDecoder组合形成的攻击链,首先看出现漏洞的SSRF漏洞的jsp,文件路径:/sys/ui/extend/varkind/custom.jsp。
c:import为文件资源导入标签,根据标签解释从HTTP请求中获取var参数的值,然后解析json获取body的值,将body违URL进行资源导入c:param为参数传递标签,若c:import中url的属性为http://www.baidu.com然后通过c:param进行参数传递,若参数为name=admin,则最后发送的请求为http://www.baidu.com?name=admin以上为SSRF漏洞的分析。
接着对xmlDecoder漏洞的路由进行分析:
在struts.xml文件中找到操作映射,寻找com.landray.kmss.sys.search.actions.SysSearchMainAction类
首先看ActionForm参数,ActionForm为从HTTP请求中获取的参数,首先判断是否能获得参数中fdParemNames的值
如果获取不到,调用setParametersToSearchConditionInfo方法
这里触发xmlDecoder反序列化漏洞
02
漏洞复现
访问蓝凌目标:
POC如下,使用bsh.Interpreter调用java函数,执行Java代码:
登录目标远程机器,弹个计算器:
03
场景提出及EXP编写
因为可能存在写入jsp文件被文件落地设备检测的危险,所以直接写入一个war包,而且jsp和java文件不落地,只落地.war,.xml,.class文件,所以尝试直接注册filter写入cmd马。
配置好web.xml文件,使用IDEA导出war包
此处注意,login类需要在jdk7下面编译。
使用Java代码读取war包的byte格式,使用文件写入函数,写入到目标环境的tomcat webapps目录。
最后改变POC,写入war文件
尝试命令执行:
执行成功,编写漏洞利用脚本
测试脚本是否成功