当前位置:网站首页>BUU刷题记6
BUU刷题记6
2022-08-06 20:53:00 【Kanyun7】
[RoarCTF 2019]Easy Java
题目环境
help的页面中存在一个filename参数的GET传参,可能存在文件下载漏洞
尝试一下:

试用POST方式来进行请求,发现可以下载文件
题目既然是与java相关的,之前了解到WEB-INF/web.xml文件泄露
漏洞成因:通常一些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; 或者其他!
构造payload尝试:
filename=/WEB-INF/web.xml
下载完后记事本打开发现:<servlet> <servlet-name>FlagController</servlet-name> <servlet-class>com.wm.ctf.FlagController</servlet-class> </servlet>
科普:servlet:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。(来源百度百科)
其实说明了这个就是JAVA源代码进行编译后所产生的后缀带有.class的东西。于是我们可以下载这个.class文件再利用反编译手段来获得flag。
最终payload:
filename=/WEB-INF/classes/com/wm/ctf/FlagController.class
记事本打开有一串base字符,解码得到flag
边栏推荐
- 顶象首期业务安全月报
- RedisCacheManager + CacheManager + @Cacheable implements annotated cache management
- LeetCode_695_岛屿的最大面积
- Kotlin Coroutines - Coroutine Start Mode CoroutineStart
- 多线程---进阶
- openssl官网文档资料
- Open legendary GM website
- 【wpf】深度解析,Bingding是如何寻找数据源的 上篇
- Huawei Device User Access and Authentication Configuration Commands
- 电商巨头困境反转,阿里和亚马逊的殊途同归
猜你喜欢
随机推荐
边缘计算:盘点100个知识点
Servlet使用
嵌入式系统驱动初级【8】——设备树
Pytest learning-yaml+parametrize interface combat
初探基于OSG+OCC的CAD之Netgen体网格划分与显示
ansible——playbook剧本概念及示例
如何自动识别爬虫网页的编码
公告|Gear 官方白皮书正式发布!
接口多态的综合案例----笔记本电脑
面试官:运行 npm run xxx 的时候发生了什么?
面经分享:美团面试也太难了!4面美团终成Offer
跨境新风向——海外众筹
MogDB/openGauss 2.0.1 升级到 3.0
Pytest学习-yaml+parametrize接口实战
什么是外贸独立站,如何做好独立站运营
Pytest learning - reading YAML files
华为设备用户接入与认证配置命令
RedisCacheManager + CacheManager + @Cacheable implements annotated cache management
Introduction to Distributed Architecture
做建模大佬从熟悉软件开始











