【靶场练习】BUUCTF——[RoarCTF 2019]Easy Java

前言

注册BUUCTF:https://buuoj.cn/
打开搜索 easy_java,然后启动靶机,开始练习~
在这里插入图片描述

尝试并寻找突破口

点击 help,获得提示,应该有个help.docx文件。
在这里插入图片描述
所以访问http://a1e823e2-2d18-4639-8242-6db593857e71.node4.buuoj.cn:81/help.docx,下载查看。
在这里插入图片描述

em--------------------有点悲伤,flag不在这里
在这里插入图片描述
但是,既然可以通过访问目录下载文件,那我们肯定要尝试下载一些敏感信息文件啦~比如尝试一下/WEB-INF/web.xml

补充说明————————————————
 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:数据库配置文件


GET请求不行,换成POST,提示URL不对,加上Download目录【这个目录在点击helo的时候,自己就出现的】
在这里插入图片描述
在这里插入图片描述

果然,有重大发现

<?xml version="1.0" encoding="UTF-8"?>
-<web-app version="4.0" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee">
-<welcome-file-list>
<welcome-file>Index</welcome-file>
</welcome-file-list>
-<servlet>
<servlet-name>IndexController</servlet-name>
<servlet-class>com.wm.ctf.IndexController</servlet-class>
</servlet>
-<servlet-mapping>
<servlet-name>IndexController</servlet-name>
<url-pattern>/Index</url-pattern>
</servlet-mapping>
-<servlet>
<servlet-name>LoginController</servlet-name>
<servlet-class>com.wm.ctf.LoginController</servlet-class>
</servlet>
-<servlet-mapping>
<servlet-name>LoginController</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
-<servlet>
<servlet-name>DownloadController</servlet-name>
<servlet-class>com.wm.ctf.DownloadController</servlet-class>
</servlet>
-<servlet-mapping>
<servlet-name>DownloadController</servlet-name>
<url-pattern>/Download</url-pattern>
</servlet-mapping>
-<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>
</web-app>

在这里插入图片描述

进一步分析payload

这段代码很关键呀,但是我们怎么找出flag呢?
科普:servlet:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。(来源百度百科)
其实说明了这个就是JAVA源代码进行编译后所产生的后缀带有.class的东西。于是我们可以下载这个.class文件再利用反编译手段来获得flag。

-<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>

所以payload就是,filename=/WEB-INF/classes/com/wm/ctf/FlagController.class
在这里插入图片描述
打开文件,内容如下:

漱壕   4 +
   	     
   !  " flag Ljava/lang/String; <init> ()V Code LineNumberTable doGet R(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V 
Exceptions # $ 
SourceFile FlagController.java RuntimeVisibleAnnotations %Ljavax/servlet/annotation/WebServlet; name FlagController   <ZmxhZ3s2OTJjMDQxZS0yNmJlLTRkZTgtODk0Zi05ZjNjNDc1M2UxMTV9Cg== 	 
 % & ' &<h1>Flag is nearby ~ Come on! ! !</h1> ( ) * javax/servlet/http/HttpServlet javax/servlet/ServletException java/io/IOException &javax/servlet/http/HttpServletResponse 	getWriter ()Ljava/io/PrintWriter; java/io/PrintWriter print (Ljava/lang/String;)V !        	 
        
   '     *?*??      
    
       
   .     ,? N-??             
                      s 

看到提示了吗?“Flag is nearby ~ Come on! ! !”
所以前后找找,发现前面有一串疑似base64编码的字符串,复制去解码。得到flag啦~
在这里插入图片描述

提交格式

提交的时候需要把这整个串“flag{******************************}”都粘贴进去才行哦~
在这里插入图片描述

写在最后的心情小记

也不知道是什么原因,我启动靶机之后,打不开。刚开始以为靶机有问题,然后我疯狂重开。
后来,让周围的人打开能打开,然后又让群友打开也能打开,但是我换了几个浏览器都打不开!!!!
重启几次也不行,改本地hosts文件、关掉代理、设置防火墙允许浏览器通过、、、、网上能找到的办法我似乎都尝试了。
最后,热心群友让我打开VPN,开启系统代理,然后能打开了~这才成功完成了这第一次ctf题目的尝试。
太难受了,搞了三小时打不开靶机,打开之后5分钟解决做完题,这谁不难过呀,哎。
没事没事,以后指不定记知道是什么问题了,然后就能尽量避免这种奇奇怪怪的问题啦~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Vulhub靶场是一个用于漏洞学习和实践的平台,提供了各种常见漏洞的环境供用户进行实验和学习。在Vulhub靶场中,你可以学习和实践Apache换行解析漏洞(CVE-2017-15715)、Apache多后缀解析漏洞(apache_parsing_vulnerability)以及Apache ssl远程命令执行漏洞(ssi-rce)等漏洞。这些漏洞都有相应的漏洞描述、漏洞原理和漏洞利用方法。其中,Apache换行解析漏洞是指通过利用Apache服务器对换行符的解析不当,导致攻击者可以执行任意命令。Apache多后缀解析漏洞是指Apache服务器对文件后缀解析不当,导致攻击者可以执行任意代码。Apache ssl远程命令执行漏洞是指Apache服务器在处理SSI(Server Side Includes)时存在远程命令执行漏洞。在Vulhub靶场中,你可以通过写入webshell、写入cron或ssh key等文件以及写入jar或jetty.xml等库和配置文件等方法来利用这些漏洞。具体的操作方法可以参考相关的参考资料。 #### 引用[.reference_title] - *1* [vulhub靶场练习——Apache换行解析、多后缀解析、以及ssl远程命令执行漏洞分析](https://blog.csdn.net/qq_38632151/article/details/103287260)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [vulhub靶场练习 CVE-2016-3088 —— ActiveMQ任意文件写入漏洞](https://blog.csdn.net/qq_38632151/article/details/102975086)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值