当前位置: 首页 > news >正文

BUU38 [RoarCTF 2019]Easy Java1

题目: 

 点击help后,报错,表明程序在尝试访问指定文件时,该文件并不存在于指定的路径中

这里可能有以下报错原因:

  1. 权限问题
  2. 相对路径问题:如果你使用的是相对路径,程序可能会在错误的工作目录中查找文件。相对路径是相对于程序的当前工作目录的,而当前工作目录可能和你预期的不一样。

GET方法不行,用POST方法提交成功 

 下载help.docx发现并没有什么用

java配置文件 :

/WEB-INF/web.xml 

WEB-INF是java的WEB应用的安全目录,此外如果想在页面访问WEB-INF应用里面的文件,必须要通过web.xml进行相应的映射才能访问。
其中敏感目录举例:

  • /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则
  • /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在.jar文件中,【用于存放 Web 应用中自定义的 Java 类的编译结果。当 Java 源代码被编译成字节码(.class 文件)后,通常会被放置在这个目录下,以便服务器在运行时能够找到并加载这些类。】
  • /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
  • /WEB-INF/src/:源码目录,按照包名结构放置各个java文件
  • /WEB-INF/database.properties:数据库配置文件

发现java页面时,一般以POST请求方式访问/WEB-INF/web.xml并将其下载下来

 这里发现flag的控制类Controller

 Servlet(小服务程序)是一种在服务器端运行的 Java 程序,用于处理客户端请求并生成动态响应,FlagController 是一个 Servlet 类

<servlet>
<servlet-name>FlagController</servlet-name>
<servlet-class>com.wm.ctf.FlagController</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>FlagController</servlet-name>
<url-pattern>/Flag</url-pattern>
</servlet-mapping>
  • <servlet-name> 标签:将其命名为 FlagController。这个名称主要用于在 web.xml 文件内部进行引用
  • <servlet-class> 标签:指定实现该 Servlet 功能的 Java 类的全限定名。com.wm.ctf.FlagController 表明该类位于 com.wm.ctf 包下,类名为 FlagController。在 Web 应用启动时,服务器会依据这个全限定名去加载对应的 Java 类,并将其作为 Servlet 进行管理。
  • <servlet-mapping> 标签:其作用是将 Servlet 与特定的 URL 建立关联
  • <servlet-name> 标签:这里的 FlagController 要与前面 <servlet> 标签中定义的 Servlet 名称保持一致,以此来明确要映射的是哪个 Servlet。
  • <url-pattern> 标签:指定了客户端请求的 URL 模式。这里/Flag 表示当客户端访问 http://yourserver/yourcontext/Flag 时,服务器会调用 com.wm.ctf.FlagController 类来处理该请求。

filename=/WEB-INF/classes/com/wm/ctf/FlagController.class

    /com/wm/ctf 包路径:

    这部分代表 Java 类所在的包结构,com.wm.ctf 是一个标准的 Java 包名,包名通常采用反转的域名格式,例如 com.example

    关于Java包:

    其实相当于一个文件夹的东西,Java 类所在的包结构使用点号(.)来分隔不同的层级,类似于文件系统中的路径。比如说,com.example.util.StringUtils 表示 StringUtils 类位于 com.example.util 包中。

    FlagController.class 文件:

    这是一个编译后的 Java 类文件,对应的源代码文件可能是 FlagController.java

    由于class类不能直接打开,应该用IDA打开,这里直接用记事本打开了

     发现一串base64编码

     解码后拿到flag

       

       

       

      相关文章:

    • DeePseek结合PS!批量处理图片的方法教程
    • AnythingLLM打造私有知识库
    • 微软AutoGen高级功能——Serializing Components
    • 【原创】springboot+vue考试考场座位安排管理系统设计与实现
    • 【架构设计】微服务架构模型:常见模型的对比和分析
    • 更高效实用 vscode 的常用设置
    • 全排列(力扣46)
    • RFM模型-数据清洗
    • 基于mediapipe深度学习的手势数字识别系统python源码
    • 20250214实测飞凌的OK3588-C_Linux5.10.209+Qt5.15.10_用户资料_R1的USB2.0的速度为29.0 MB/s
    • 香港VPS服务器如何排查和修复 MySQL 数据库连接失败的问题
    • 从图像中提取的每行数字作为一张完整的图片,而不是每个数字单独成为一张图片
    • 教程:使用 Vue 3 和 arco 实现表格合并
    • MySQL 数据库定时任务及进阶学习
    • UE_C++ —— Metadata Specifiers
    • Redis——优惠券秒杀问题(分布式id、一人多单超卖、乐悲锁、CAS、分布式锁、Redisson)
    • 【目标检测json2txt】label从COCO格式json文件转YOLO格式txt文件
    • mysql开启gtid并配置主从
    • Windows 11 下 Ollama 安装与 OpenWebUI 调用 DeepSeek-R1 的详细指南
    • 100N03-ASEMI豆浆机专用MOS管100N03
    • 网站建设 代理/百度指数大数据
    • 做围棋死活题的网站/品牌推广经典案例
    • 网站关键字可以修改吗/高端网站建设南宁
    • html5网站案例/seo推广服务哪家好
    • 桂林网站建设凡森网络/百度云账号登录
    • 定制网站开发方案/百度小说排行榜总榜