[RoarCTF 2019]Easy Java

0x01知识点:

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:数据库配置文件
漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码

漏洞成因:

通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。一般情况,jsp引擎默认都是禁止访问WEB-INF目录的,Nginx 配合Tomcat做均衡负载或集群等情况时,问题原因其实很简单,Nginx不会去考虑配置其他类型引擎(Nginx不是jsp引擎)导致的安全问题而引入到自身的安全规范中来(这样耦合性太高了),修改Nginx配置文件禁止访问WEB-INF目录就好了: location ~ ^/WEB-INF/* { deny all; } 或者return 404; 或者其他!

0x02:题目

打开题目,点击help,抓包修改为POST
得到报错信息
根据题目提示。我们传入filename值为
WEB-INF/web.xml

看到

com.Wm.ctf.FlagController
关键路径
根据前文:


漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码

我们结合tomcat的项目存放路径经验试试下载FlagController.class试试
payload:

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

得到文件,base64解密得到flag

原文地址:https://www.cnblogs.com/wangtanzhi/p/12173215.html

时间: 2024-10-08 15:15:25

[RoarCTF 2019]Easy Java的相关文章

BUUCTF | [RoarCTF 2019]Easy Calc

看一下页面源码,发现了提示: calc.php?num=encodeURIComponent($("#content").val()) $("#content").val() 是什么意思: 获取id为content的HTML标签元素的值,是JQuery,     $("#content")相当于document.getElementById("content");       $("#content").v

2019滴滴java面试总结 (包含面试题解析)

2019滴滴java面试总结  (包含面试题) 本人6年开发经验.今年年初找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是既有php也有Java后端开发,最终选择去了滴滴. 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助.另外,目前在滴滴也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职者的视角,也有面试官的视角. 面试流程 先说下面试流程,一般大公司都有3

2019年Java未来的发展方向

2018即将结束,迎来2019年,Java作为世界上 最流行的计算机编程语言,在当今信息时代中发挥了重要的作用.Java语言本身具有着自己独特的优势:面向对象.分布式应用并且安全.多线程.跨平台等.这使得Java语言成为许多应用系统理想开发语言. 不管是手机应用程序还是电脑程序,你在生活中每一次购物到每一笔支付成功,都离不开Java,越来越多的公司也正在采用Java语言开发网站,在所有程序员当中做Java开发的工程师比例相当高的,通常来说,具备3到5年开发经经验的Java工程师,年薪20万元是很

阿里P8架构师谈:2019的Java程序员要怎么提升?拿30K高薪?

最近去阿里的菜鸟国际做了一次面试交流,发现大公 阿里P8架构师谈:2019的Java程序员要怎么提升?拿30K高薪?司对于面试者的知识结构考核非常严谨,可以作为我们日常工作学习的指导.虽然很多人说面试问到的东西在实际工作中很少用到,甚至有「面试造火箭,工作拧螺丝」的说法.但从面试中,其实可以看得出来现在的公司对于面试者的知识体系要求.如果我们能在工作中就按着这样的要求去不断提升,那么在面试的时候必然也能游刃有余. 具有一到五年开发经验的程序员 需要学习的内容? 技术学到这个阶段,很容易遇到瓶颈,

[RoarCTF 2019]simple_uplod

[TOC] [RoarCTF 2019]simple_uplod 题目复现链接:https://buuoj.cn/challenges 参考链接:官方wp 1.ThinkPHP文件上传 参考官方文档可知并没有题目中限制后缀名的方法,所以可以无视allowext http://document.thinkphp.cn/manual_3_2.html#upload 2.upload()多文件上传 upload()函数不传参时为多文件上传,整个$_FILES数组的文件都会上传保存. 题目中只限制了$_

2019大厂Java岗面试题全曝光,刷完这1020道,金三银四大厂等你

2019大厂Java岗面试题全曝光,刷完这1020道,金三银四大厂等你 前言: 本文收集整理了各大厂常见面试题N道,你想要的这里都有 内容涵盖:Java.MyBatis.ZooKeeper.Dubbo.Elasticsearch.Memcached.Redis.MySQL.Spring.Spring Boot.Spring Cloud.RabbitMQ.Kafka.Linux 等技术栈,希望大家都能找到适合自己的公司,开开心心的撸代码. 看面试题可以是为了面试,也可以是对自己学到的东西的一种查漏

2019年java后端年终总结(六年开发经验),送给正在努力的你

长大之后,时间总是过得飞快,转眼之间,今年已经只剩下1天了.小时候总感觉遥不可及.只在科幻小说里面出现的2020年,已经开始进入蓄力期了. 这篇文章主要和大家聊一聊分析2019年java技术的更新给大家明年进阶方向的一些建议.(工作1到五年) 2019年主流技术:(含思维导图) 一.分布式架构: 架构分布式的应用和工具,成熟目前的技术包括 J2EE,CORBA 和 DCOM,这些技术牵扯的内容非常广,相关的书籍也非常多. 分布式系统是一个古老而宽泛的话题,而近几年因为“大数据”概念的兴起,又焕发

leetcode Search Insert Position(easy) /java

写easy,心情也很顺畅. 题目的意思是,如果有val,那么返回val的下标.如果没有val,那么找出val应该放在哪里. import java.io.*; import java.util.*; public class Solution { public static int searchInsert(int[] nums, int target) { int r=0; int len=nums.length; if(len==0) return 0; int i,j; i=0; whil

leetcodeRemove Duplicates from Sorted Array(easy) /java

我决定先刷easy. 这道题的诡异之处在于,不仅你得输出长度,你还得更改nums[]数组,把冗余的数清掉.比如 import java.io.*; import java.util.*; public class Solution { public static int removeDuplicates(int[] nums) { int r=0; int len=nums.length; int i=0,j=0; if(len<2) return 0; int cmp=nums[0]; int