[ctfshow摆烂杯] 登陆不了
解题思路
信息收集
- 判断网站类型为java
- 找隐藏的接口 --发现一个存在任意文件读取的地方
存在任意文件读取
打开是src是http://5d5ab01d-98d4-4fdb-98b7-78a924e4760d.challenge.ctf.show/v/c?r=YzgxZTcyOC5qcGc= 进行b64解码
尝试读取/etc/passwd
有响应但是没数据,猜测不能使用绝对路径,用相对路径测试
发现可以成功读取
java的题,直接就尝试读web.xml,classes等
利用相对路径读取敏感文件
默认情况下,WEB-INF下的文件是不允许访问的
-
读取web.xml
-
读取pom.xml
发现框架,进行读取 -
读取框架jar,并保存到文件
保存后,发现文件反编译失败。看了wp,发现是直接保存下来的jar的文件结构有问题,在这里需要把末尾的结构标准化为下图,即删除后面多余的数据
- 读取index控制器
发现首页控制器com.ctfshow.controller.Index,但lib中没有,那就应该在classes中,再去读对应的字节码文件
classes中的文件名是class为后缀,千万别忘了这个;class的文件头为CA FE BA BE
- 框架代码审计
发现任意文件写入,利用tomcat的热加载机制,重写web.xml,再写个对应的jsp马,写反弹shell即可。
分析小结
java项目的敏感信息
WEB-INF主要包含一下文件或目录:
/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties:数据库配置文件
漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码
bp保存class文件
会出现后面很多00 ,class后面的可以直接删掉,有些文件结构后面有0,需要判断后在进行格式化。可以使用010editor中的模板进行处理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】