专栏名称: SAINTSEC
SAINTSEC 民间信息安全技术团队,DEFCON GROUP 020发起团队,旗下分SRC、CTF等多个小组,获得众多的CNVD、CNNVD证书和CVE编号,可接APP、WEB、IoT等安全测试、源代码安全审计、渗透测试、安全培训等项目
今天看啥  ›  专栏  ›  SAINTSEC

第九届XCTF国际联赛分站先导赛RCTF 2024WP WEB篇

SAINTSEC  · 公众号  · 前端 科技媒体  · 2024-05-28 10:00
    

主要观点总结

文章主要描述了一个基于Java环境的反序列化攻击,通过构造特定的序列化数据,利用Java的LDAP反序列化漏洞,成功执行恶意代码,获得反弹shell的过程。

关键观点总结

关键观点1: 文章背景

文章介绍了利用Java环境的LDAP反序列化漏洞进行攻击的过程,通过构造特定的序列化数据,利用Java的LDAP反序列化漏洞,成功执行恶意代码,获得反弹shell。

关键观点2: 攻击步骤

文章详细描述了攻击步骤,包括构造序列化数据,利用LDAP反序列化漏洞,执行恶意代码,获取反弹shell等。

关键观点3: 攻击工具

文章提到了使用JNDI-Injection-LDAP-Deserialization工具作为恶意服务器,通过Python脚本构造攻击载荷,进行攻击。

关键观点4: 关键技巧

文章强调了利用正则表达式和构造特定序列化数据的重要性,以及如何绕过Java环境的LDAP反序列化漏洞。

关键观点5: 最终成果

文章最后成功执行了恶意代码,获得了反弹shell,并给出了招新邮箱,有兴趣加入战队的同学可以发送简历。


文章预览

nosandbox 随便输入一个单引号报错发现是org.apache.commons.jexl3 网上找不到什么资料,找到了官方的语法文档 https://commons.apache.org/proper/commons-jexl/reference/syntax.html 最主要看这一部分 可知使用new来实例化一个类,但是new(被ban了,于是使用new ('类名','参数')来调用构造方法(new和括号间加一个空格),但是好像被删了很多的类,导致没办法正常读取到jar包,如URL、ProcessBuilder等 可以通过 java.util.Scanner 配合 java.io.InputStreamReader 和 java.io.FileInputStream 可以读取文件,但是因为是以文本方式读取,不可见字符会出现编码问题,无法正常打开下载的jar包,下载jar包exp如下,先读取/proc/self/cmdline确定jar包位置,然后读取jar: import  base64 import  requests url =  "http://124.70.143.104:10088/" def   newclass (cname, arg) :     payload =  f'new (" {cname} "'      if  type(arg) == str:       ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览