[RoarCTF 2019]Easy Java

news/2024/9/23 1:26:58/文章来源:https://www.cnblogs.com/bolerat/p/18332853

[RoarCTF 2019]Easy Java

Step 1

点击help按钮后发现:

URL变成:
url/Download?filename=help.docx
而回显:
java.io.FileNotFoundException:{help.docx}

而当我尝试尝试POST,发现文件成功下载:

image

Step 2

发现可能的漏洞点后,结合WEB-INF相关知识(见文末)

可以下载WEB-INF/web.xml

POST参数:
filename=WEB-INF/web.xml

得到内容:

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

于是我们可以构造

POST参数:
filename=WEB-INF/classes/com/wm/ctf/FlagController.class

得到的文件中有base64编码,解压即得到flag

WEB-INF

WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。 如果想在页面中直接访问其中的文件,必须通过 web.xml 文件对要访问的文件进行相应映射才能访问。

Tomcat的WEB-INF目录,每个j2ee的web应用部署文件默认包含这个目录。

Nginx在映射静态文件时,把WEB-INF目录映射进去,而又没有做Nginx的相关安全配置(或Nginx自身一些缺陷影响)。

从而导致通过Nginx访问到Tomcat的WEB-INF目录(要注意是通过Nginx,而不是Tomcat访问到的,因为Tomcat是禁止访问这个目录的)。

WEB-INF 主要包含以下文件或目录:

WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.

WEB-INF/database.properties : 数据库配置文件

WEB-INF/classes/ : 一般用来存放Java类文件(.class)

WEB-INF/lib/ : 用来存放打包好的库(.jar)

WEB-INF/src/ : 用来放源代码(.asp和.php等)

漏洞成因: 通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。

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

找web.xml: 直接请求/WEB-INF/web.xml或者更换为POST请求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/774130.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elasticsearch单机版—安装详细教程

一、ES介绍Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作: (1).分布式实时文件存储,并将每一个字段都编入…

人工智能水平测试七级实操——智能环境检测系统

人工智能水平测试七级实操——智能环境检测系统 1 摄像头识别 自动检测摄像头前方是否出现运动的【红色】物体,如果出现显示与物体颜色相近的灯并保持长亮,并持续发出特定的报警声音;若物体停止运动,则灯保持长亮,报警声停止;无题离开视野范围内,则灯熄灭,报警停止; 2…

OI特殊性质总结——笔记(持续更新)

1.交换序列中\(x,y\), 逆序对奇偶性变换 交换 \(x,y\) 首先 $ k \leq x$ 部分的逆序对不变,\(k \geq y\) 部分不变 唯有 \(x \leq k \leq y\) 会变化 那么怎么变呢? 如图:原来逆序对 \(a + c\) ,现在逆序对: \(a + b + b + c + 1 = a + 2b + c + 1\) 那么我们换完会奇偶性…

[rCore学习笔记 019]在main中测试本章实现

写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 批处理操作系统的启动和运行流程 要想把本章实现的那些模块全部都串联在一起以实现运行一个批处理操作系统,回顾本章内容,思考批…

MySQL 学习笔记 进阶(存储过程 下,存储函数,触发器,锁 上)

存储过程存储过程-if判断语法IF 条件1 THEN...... ELSEIF 条件2 THEN...... ELSE...... END IF; 存储过程-参数 用法CREATE PROCEDURE 存储过程名称([ IN/OUT/INOUT 参数名 参数类型 ]) BEGIN-- SQL语句 END; 存储过程-case语法一CASE case_valueWHEN when_value1 THEN state…

TFA-收集日志及分析

下载https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=272133523880062&id=1513912.1&_afrWindowMode=0&_adf.ctrl-state=fghvcgapa_617a 安装[root@rhel75 ~]# ./ahf_setup AHF Installer for Platform Linux Architecture x86_64AHF Installa…

C# 文件操作

本篇主要记录C#操作文件 相对路径在项目文件...\bin\Debug 目录下 一、写入读取文件写入/// <summary>/// initial 文件写入/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private vo…

Python 环境配置(二)安装jupyter、matplotlib、numpy库

Python 环境配置(二)安装jupyter、matplotlib、numpy库 一、numpypip install numpy二、matplotlibpip install matplotlib 三、jupyter 1、anaconda自带Jupyter 2、pycharm 插件只有 Pycharm 的 Professional 版才支持 Jupyter Notebook,请注意版本3、新建文件#%%import nu…

Meta SAM 2:实时分割图片和视频中对象;Apple Intelligence 首个开发者测试版发布丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点…

Python 环境配置(一)Python、Anaconda、Pycharm的安装

Python 环境配置(一)Python、Anaconda、Pycharm的安装本人之前已安装一次,此次为卸载之后的重新安装。。。一、Python 1、下载 下载官网: 下载链接:Download Python | Python.org勾选 添加到路径 (环境变量)next如图所示之后点close关闭2、验证 win+R cmd: python退出 …

C++ - VS2019配置pthread线程库

1. 说明 在VS里用MS编译器不能直接调用pthread库,需要先自行下载该库:http://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip 解压后用得到的只有Pre-built.2文件夹下的文件。2. 配置 如下图分别配置三大项:包含目录-->...pthreads-w32-2-9-1-releas…

Windows安全策略

Windows 安全策略是系统管理的一部分,用于设置和管理计算机或网络的安全配置。保护系统免受未经授权的访问和其他安全威胁。常见 Windows 安全策略分类: 1. 账户策略 (Account Policies) 账户策略管理用户账户的行为和属性,主要包括: • 密码策略: • 密码历史记录:限制用…