Jay17 2023.8.12日报

8.12

今天做了2题,CTFshow 红包挑战8(PHP create_function())和BUU [RoarCTF 2019]Easy Java(web.xml泄露)。

此外一直在打NepCTF,出了一题(ez_java_checkin)简单了解了java中shrio反序列化漏洞的利用。

做Nep时候顺便补充了一下文件包含的绕过方式。

image-20230812153534923

CTFshow 红包挑战8(wp现在不能放)

image-20230812213357962

NepCTF ez_java_checkin

image-20230812213515764

BUU [RoarCTF 2019]Easy Java

考点:web.xml泄露

开题是一个登录框。

image-20230812074617244

点击help跳转到/Download路由,同时返回提示(报错)。
由此我们得出/Download路由后端语言是Java,同时存在任意文件下载漏洞。

image-20230812074805631


WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过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应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。

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

一般情况,jsp引擎默认都是禁止访问WEB-INF目录的,Nginx 配合Tomcat做均衡负载或集群等情况时,问题原因其实很简单,Nginx不会去考虑配置其他类型引擎导致的安全问题而引入到自身的安全规范中来。

**修复漏洞方法:*修改Nginx配置文件禁止访问WEB-INF目录就好了: location ~ ^/WEB-INF/ { deny all; } 或者return 404; 或者其他。


我们先尝试利用任意文件下载漏洞读取Web应用程序配置文件

这里提交方式要改为POST,应该是题目原因。

filename=/WEB-INF/web.xml

成功下载。

image-20230812075134835

_WEB-INF_web.xml文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><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>

我们重点看以下xml代码片段和前文提到的WEB-INF包含的class目录

<servlet><servlet-name>FlagController</servlet-name><servlet-class>com.wm.ctf.FlagController</servlet-class>
</servlet>
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中

所以我们读取FlagController.class文件的payload如下:

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

image-20230812075727622

用记事本打开是编译过的。

image-20230812075842038

用IDEA打开自动反编译。

image-20230812080229184

ZmxhZ3s3NWYyYmNlYS01YTJhLTQ4OTYtOGExZi02ODIwNWExMGIwYjR9Cg==
解码后
flag{75f2bcea-5a2a-4896-8a1f-68205a10b0b4}

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

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

相关文章

02 - git 文件重命名

第一种方式&#xff1a; mv kongfu_person.txt kongfu.txt git add .第二种方式&#xff1a; git mv kongfu_person.txt kongfu.txt

Jmeter请求接口返回值乱码解决

乱码示例 解决步骤&#xff1a; 1.打开Jmeter安装目录下的bin目录&#xff0c;找到jmeter.properties 2.使用记事本或其他编译工具打开jmeter.properties文件&#xff0c;然后全局搜索sampleresult.default.encoding 3.在文件中添加sampleresult.default.encodingutf-8,保存…

TSINGSEE青犀视频安防监控视频平台EasyCVR设备在线,视频无法播放的原因排查

可支持国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等多种协议接入的安防监控视频平台EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、…

【CSS学习笔记】

学习内容 1.css是什么 2.CSS怎么用&#xff08;快速入门&#xff09; 3.CSS选择器&#xff08;重点 难点&#xff09; 4.美化页面&#xff08;文字、阴影、超链接、列表、渐变…&#xff09; 5.盒子模型 6.浮动 7.定位 8.网页动画&#xff08;特效&#xff09; 1.什么是CSS C…

【计算机视觉|生成对抗】用深度卷积生成对抗网络进行无监督表示学习(DCGAN)

本系列博文为深度学习/计算机视觉论文笔记&#xff0c;转载请注明出处 标题&#xff1a;Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks 链接&#xff1a;[1511.06434] Unsupervised Representation Learning with Deep Conv…

利用ApiPost实现Mock Server服务

APIPOST可以让你在没有后端程序的情况下能真实地返回接口数据&#xff0c;你可以用APIPOST实现项目初期纯前端的效果演示&#xff0c;也可以用APIPOST实现开发中的数据模拟从而实现前后端分离。在使用APIPOST之前&#xff0c;你的团队实现数据模拟可能是下面的方案中的一种或者…

Linux命令200例:pwd用于显示当前工作目录的绝对路径

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &…

数字化时代,选择商业智能BI解决80%数据问题

数据是需要有人来照料、培养的&#xff0c;如果企业没有完善的数据治理方案&#xff0c;就很难保障数据的质量&#xff0c;进而导致数据无法利用&#xff0c;让这些辛苦积累的数据失去了价值。 数据治理目标 数据从业务活动中产生&#xff0c;也会深刻影响到业务本身。 对于…

基于CentOS 7 配置nginx负载均衡

搭建负载均衡服务的需求如下&#xff1a; 1 ) 把单台计算机无法承受的大规模并发访问或数据流量分担到多台节点设备上&#xff0c;分别进行处理&#xff0c; 减少用户等待响应的时间&#xff0c; 提升用户体验。 2 ) 单个重负载的运算分担到多台节点设备上做并行处理&#xff…

C语言学习之一级指针二级指针

一级指针&#xff1a;内存中每个字节都有一个编号&#xff0c;这个编号就是指针&#xff0c;也称作地址&#xff1b;专门用来存储地址的变量&#xff0c;就是指针变量&#xff1b;定义一级指针变量并初始化&#xff1a; 数据类型 *指针变量名 &普通变量名; 数据类型 *指针…

Nginx与docker配置安装

目录&#xff1a; Nginx的安装配置&#xff1a; 1、安装依赖包&#xff1a; 2、下载Nginx安装包&#xff1a; 3、解压Nginx压缩包&#xff1a; 4、配置Nginx编译环境&#xff1a; 5、编译并安装Nginx&#xff1a; 6、安装完Nginx后&#xff0c;可以切换到Nginx的安装目录…

闲鱼卖货:新手容易踩坑的7个地方。赶紧看看有没有中招?

科思创业汇 大家好&#xff0c;这里是科思创业汇&#xff0c;一个轻资产创业孵化平台。赚钱的方式有很多种&#xff0c;我希望在科思创业汇能够给你带来最快乐的那一种&#xff01; 这是我以前的一个学生收到的第一个非法通知。他告诉我&#xff0c;他当时很害怕&#xff0c;…