任意文件读取rce记录

1.跨目录上传

对某系统进行测试时,发现有一处上传附件的功能,常规上传个文件试试

图片

发现返回包返回了重命名后的文件名称和系统的绝对路径

继续看上传的文件

图片

只有一个预览的功能,访问直接下载该文件,并没有什么用,请求链接为

DownloadServlet?type=W***J&filename=QQ%E5%9B%BE%E7%89%8720230414145425.jpg&pyName=9be6c164-d5a9-4a1e-a555-139ec1ce383d.jpg

回头仔细看上传的数据包,发现上传的参数type的值返回在了系统的绝对路径中,猜测type的值即为上传的文件夹,将type改成1尝试,印证了猜想,且是可以直接上传jsp的!

图片

既然上传文件参数可控,尝试使用../看是否可以跨目录上传,发现也是可以的

图片

至此得到一个上传路径可控的有效上传点,且通过上传返回的绝对路径知道了当前的user名称(这个后面很关键)。

那么接下来的思路就是寻找系统的web路径,直接上传脚本getshell。尝试了一些常用的手法例如构造报错等均未找到目标,尬住了一会儿后,想到了之前的跨目录上传,既然上传处可以使用../进行跨目录,那么上传后的预览处呢?

2.任意文件读取

回到刚才的上传预览处

图片

将预览功能处的请求链接中的filename与pyname进行构造尝试,果不其然,发现一处任意文件读取

DownloadServlet?type=W***J&filename=QQ%E5%9B%BE%E7%89%8720230414145425.jpg&pyName=9be6c164-d5a9-4a1e-a555-139ec1ce383d.jpg

图片

得到任意文件读取后可以通过读取中间件的默认配置文件寻找更多信息,例如

tomcat

/usr/local/tomcat(tomcat-1.1.1(具体版本号))/conf/tomcat-users.xml/usr/local/tomcat(tomcat-1.1.1(具体版本号))/bin/catalina.sh(其中日志的配置路径)

apache

/var/log/apache2/access.log/var/log/apache2/error.log/var/log/httpd/access_log/etc/httpd/logs/access_log/etc/httpd/logs/error_log/etc/httpd/logs/error.log

nginx

/var/log/nginx(nginx-1.1.1(具体版本号))/access.log/var/log/nginx(nginx-1.1.1(具体版本号))/error.log/usr/local/var/log/nginx(nginx-1.1.1(具体版本号))/access.log/usr/local/nginx(nginx-1.1.1(具体版本号))/logs/etc/nginx(nginx-1.1.1(具体版本号))/nginx.conf

通过旁站的其他端口的web指纹,发现使用的是tomcat

图片

直接尝试读取tomcat的默认配置文件,均失败:)

接着尝试读取操作系统的默认路径,linux下常用路径如下

/etc/passwd                     账户信息/etc/shadow                     账户密码文件/etc/my.cnf                     mysql配置文件/root/.ssh/id_rsa               ssh-rsa私钥/etc/redhat-release             系统版本 /root/.bash_history             用户历史命令记录文件/home/user/.bash_history        特定用户的历史命令记录文件/root/.mysql_history            mysql历史命令记录文件/var/lib/mlocate/mlocate.db     全文件路径/proc/net/fib_trie              内网IP/proc/self/environ              环境变量/proc/self/loginuid             当前用户uid

最终通过/home/user/.bash_history中成功找到了tomcat的web路径

图片

3.getshell

万事具备,直接上传至根目录下,访问

图片

根目录下不解析,直接跳转到了登录页面,但是可以看到跳转目录携带了我们访问的jsp。

这种情况下,有账号的话(本系统提供了注册功能),直接登录后访问即可

图片

4.一些拓展

上述的情况都是登录后测试的,如果上传点是fuzz出来的,没有目标系统的账号,也可以采取如下几种方案。

  • 1.尝试直接上传至系统的静态目录,例如系统自动加载的js文件的目录。

  • 2.尝试绕过fillter的鉴权,一般从fillter对目录的白名单或是文件后缀的白名单两个角度绕过入手。

附一些实战的案例。

目录白名单绕过

图片

图片

文件后缀白名单绕过

图片

图片

其他情况绕过

图片

图片

3.寻找其他的web可以直接访问且知道路径的目录

例如本案例中的

图片

图片

直接构造上传

图片

浏览器访问,成功rce

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ansible自动化运维工具单模块介绍

前言 自动化运维是指利用自动化工具和技术来简化、自动化和优化IT基础设施的管理和运维过程,从而提高效率、降低成本,并减少人为错误。在当今复杂的IT环境中,自动化运维已经成为许多组织和企业提高生产力和保证系统稳定性的重要手段。Ansibl…

NYU Depth V2数据集相关介绍

一、参考资料 NYU Depth Dataset V2官网 论文:Indoor Segmentation and Support Inference from RGBD Images 二、 相关介绍 1.简介 NYU-Depth V2数据集由来自微软 Kinect 的RGB和深度相机记录的各种室内场景的视频序列组成。它具有: 1449对密集标…

Transformer全流程细致讲解

文章目录 1. Transformer 架构概述2. 编码器(Encoder)2.1 输入嵌入层(Input Embedding Layer)2.1.1 一个简单的示例 2.2 位置编码(Positional Encoding)2.2.1 Transformer中采用的位置编码方式2.2.2 公式中…

个人直播/流媒体服务解决方案实践

目录 1. 说明 1.1 拓扑结构图 2. 准备工作 2.1 软硬件清单 3. 步骤 3.1 按上面的软硬件清单准备好材料 3.2 内网检查测试 3.3 透传到公网服务器 3.5 机顶盒配置 4. 总结 5. 参考 6. 后语 1. 说明 - 在本地局域网建立流媒体服务,并发布到公网服务器供终…

【CTF Web】XCTF GFSJ0482 weak_auth Writeup(弱口令+密码爆破)

weak_auth 小宁写了一个登陆验证页面,随手就设了一个密码。 解法 随便输入一些字符,提示以 admin 登录。 使用 Burp 抓包。 导入密码字典。 进行爆破。 得到密码。 账号:admin 密码:123456取得 flag。 Flag cyberpeace{42c9664…

(论文阅读-多目标优化器)Multi-Objective Parametric Query Optimization

目录 摘要 一、简介 1.1 State-of-the-Art 1.2 贡献和大纲 二、定义 三、相关工作 四、问题分析 4.1 分析 4.2 算法设计影响 五、通用算法 5.1 算法概述 5.2 完备性证明 六、分段线性代价函数算法 6.1 数据结构 6.2 基本运算实现 6.3 复杂度分析 七、实验评估 …

数据库大作业——基于qt开发的图书管理系统(二) 相关表结构的设计

前言 在上一篇文章中。我们完成了Qt环境的安装,同时完成了有关项目需求的分析并绘制了整体的项目架构图,而在图书管理系统中,其实我们主要完成的就是对数据的增删改查,并将这些功能通过信号与槽机制和可视化界面绑定在一起&#…

【菜单下拉效果】基于jquery实现二级菜单下拉效果(附完整源码下载)

Js菜单下拉特效目录 🍔涉及知识🥤写在前面实现效果🍧一、涉及知识🌳二、具体实现2.1 搭建一级菜单2.2 搭建二级菜单项2.3 引入js文件2.4 构建CSS文件 🐋三、源码获取🌅 作者寄语 🍔涉及知识 ht…

Xinstall实操指南:二维码推广,轻松追踪App安装效果!

在移动互联网时代,App的推广方式层出不穷,但二维码推广始终占据着重要的地位。作为国内专业的App全渠道统计服务商,Xinstall深知二维码推广的潜力与价值,并致力于通过创新的技术和服务,帮助广告主和开发者实现推广效果…

AtCoder Regular Contest 176(ARC176)A、B

题目:AtCoder Regular Contest 176 - tasks 官方题解:AtCoder Regular Contest 176 - editorial 参考:atcoder regular 176 (ARC176) A、B题解 A - 01 Matrix Again 题意 给一个nn的方格,给出m个坐标(x,y)m,在方格中…

opencv图像处理详细讲

传统的计算机视觉框架: SimpleCV BoofCV Dlib JavaCV 深度学习计算机视觉框架 Caffe Tensorflow Pytorch Paddlepaddle Keras 深度视觉计算机视觉框架 OpenVINO TensorRT onnxruntime Deepface YOLO/DarkNet mmdetection Paddle-detection/seg/ocr …

csrf攻击(跨站请求伪造)【2】

1.DVWA中csrf漏洞验证low (1)受害者将密码更改为password,显示更改成功 (2)受害者未退出登录状态,打开了新链接(黑客设计好的修改密码为admin123(原本为passwrod)的链接),导致受害者密码被更改&#xff0c…

测试环境搭建:JDK+Tomcat+Mysql+Redis

基础的测试环境搭建: LAMPLinux(CentOS、ubuntu、redhat)ApacheMysqlPHP LTMJLinux(CentOS、ubuntu、redhat)TomcatMysql(Oracle)RedisJava 真实的测试环境搭建:(企业真实的运维) 基于SpringBoot(SpringCloud分布式微…

【从零开始学架构 前言】整体的学习路线

本文是《从零开始学架构》的第一篇学习笔记,在工作6年左右的这个时间点需要有一些先行的理论来指导即将面临的复杂实践,以便在真正面临复杂实践的时候能有所参照。 主要从以下几个方面和顺序来进行学习 架构基础:从架构设计的本质、历史背景…

网络模块-reactor模式

reactor其实没那么神秘 背景介绍实现一个单线程的reactor(epoll)单独事件结构体reactor总表reactor事件增删改 总结优点缺点使用到reactor的开源库 背景 高性能服务器的开发需要考虑到3点:I/O事件、定时事件、信号。 对于多并发的场景&#…

ROS机器人入门:机器人系统仿真【学习记录】——2

承接上一篇博客: ROS机器人入门:机器人系统仿真【学习记录】——1-CSDN博客 我们先前结束了(上一篇博客中): 1. 概述 2. URDF集成Rviz基本流程 3. URDF语法详解 4. URDF优化_xacro 下面让我们继续学习ROS机器人…

基于ESP32和ESP8266的物联网开发过程(一)

给大家演示一个小工具,通过Wifi去连接ESP32或者ESP8266出来的一个热点。连接到这个热点之后,可以输密码,也可以不输密码。这里我设置的是不输密码直接进来,我这个是ESP8266。 进来之后直接点配置Wifi,然后可以看到ESP8…

tecplot 宏的使用方法及代码改写

我们在对流场数据进行批量提取时,不可避免的需要使用tecplot宏文件,因此,俺就研究了一下,主要针对的是批量切片-批量转换成dat文件-批量转换成excel的格式 以下贴出我的宏文件 1.批量切片 重点在于设置循环 2.批量dat转excel 大…

SPSS之聚类分析

SPSS中系统聚类分析功能在【分析】—【分类】—【系统聚类】中完成。系统聚类有两种类型,一种是对样本进行聚类,称为Q型聚类;一种是对变量进行聚类,称为R型聚类。在【系统聚类分析】—【聚类】框下选择【个案】——Q型聚类&#x…

优惠券样式案例

优惠券样式案例 <template><view class"box"><view class"boxItem"><img src"../../../static/come.png" alt"" class"img"/><span class"icon">&#xffe5;</span><s…
最新文章