今年十八,喜欢文件上传

简介: 今年十八,喜欢文件上传

前言


🍀作者简介:被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。


🫒每日emo:趁思念、、


文件上传相关知识(非重点:


在网站中,总是有些地方需要上传文件(废话


例如


这些模块往往允许我们上传一些固定/不固定的文件,例如:jpg、txt、png等等


那我们浅浅地思考一下,能不能通过上传一些奇怪的东西,来使网站出一些问题?


先别着急动手,动手之前,还得想想,为什么网站会有这个东西?


那肯定得是写网站的程序员是个屑,没有对上传文件进行严格的过滤和验证。


之所以把严格划为重点,是因为就算是一些简单的过滤,我们也是能通过手段进行绕过的。


这就是webshell


查看服务器目录、文件、执行系统命令等。。。


JS检测绕过


当我们上传一些不符合要求的文件时


会弹窗警告,此时数据包并没有上传到服务端,而是在本地浏览器通过js对其进行检测

得想想咋绕过这个检测,有三种方法:


  1. 禁用js
  2. 先过去再说
  3. 直接改代码


1、禁用js


既然是用js进行校验的,那咱们直接不让网站用js不就行了吗。


打开浏览器设置


禁用之后刷新网页,再上传试试。

看,后缀为ifif的文件上传成功(我也不到这啥格式


2、先过去再说


既然他是在本地校验完上传到服务端,那我们先忽悠他一下。


假设我们要上传index.php


先加个后缀,index.php.jpg,我这软件出问题了,简单讲下思路,先上传,然后拦截把后缀改回来。


3、直接改代码


首先检查一下


找到上传文件的按钮的位置,我仔细瞧了半夜,才从代码缝中看出码来,这串没啥用,得往下看


发现下面这玩意好像有点搞头

看看代码,最开始的时候用了个flag默认为false,然后如果咱上传的文件在列表里就把flag改成true


然后如果不是图片类型,通过这玩意拦截


因为最开始是false嘛,!flag就是true,就相当于执行if(true),不允许通过。


那这里就有两种改法:


  1. 咱把想上传的文件后缀放在arr里(在上面,自己看
  2. 咱直接把flag改成true,这样无论什么后缀的文件都可以通过js校验,当然,这种方法只能用来装一下


文件后缀绕过


在Apache中,文件后缀的解析顺序是从右到左的,如果最右侧的后缀不能解析,那么就顺次想左读取,直至读到能用的后缀为止。那就好玩了。


index.php.xiadade


上传个这玩意,本地js直接禁用通过,服务端顺次识别。


这个是指服务端代码限制了某些后缀不允许上传,但是有些Apache允许解析其他后缀

目录
相关文章
|
8月前
|
前端开发 Java Spring
教会你怎么使用SpringMVC 文件上传
教会你怎么使用SpringMVC 文件上传
81 0
|
3月前
|
前端开发 JavaScript
💥【exceljs】纯前端如何实现Excel导出下载和上传解析?
本文介绍了用于处理Excel文件的库——ExcelJS,相较于SheetJS,ExcelJS支持更高级的样式自定义且易于使用。表格对比显示,ExcelJS在样式设置、内存效率及流式操作方面更具优势。主要适用于Node.js环境,也支持浏览器端使用。文中详细展示了如何利用ExcelJS实现前端的Excel导出下载和上传解析功能,并提供了示例代码。此外,还提供了在线调试的仓库链接和运行命令,方便读者实践。
486 5
|
3月前
|
存储 前端开发 Java
Java后端如何进行文件上传和下载 —— 本地版(文末配绝对能用的源码,超详细,超好用,一看就懂,博主在线解答) 文件如何预览和下载?(超简单教程)
本文详细介绍了在Java后端进行文件上传和下载的实现方法,包括文件上传保存到本地的完整流程、文件下载的代码实现,以及如何处理文件预览、下载大小限制和运行失败的问题,并提供了完整的代码示例。
1028 2
|
3月前
|
JavaScript 前端开发 编译器
吐血整理:纯前端如何实现批量dom转图片,并下载成压缩包
【10月更文挑战第2天】吐血整理:纯前端如何实现批量dom转图片,并下载成压缩包
68 2
|
8月前
|
JSON Rust 前端开发
【sheetjs】纯前端如何实现Excel导出下载和上传解析?
本文介绍了如何使用`sheetjs`的`xlsx`库在前端实现Excel的导出和上传。项目依赖包括Vite、React、SheetJS和Arco-Design。对于导出,从后端获取JSON数据,通过`json_to_sheet`、`book_new`和`writeFile`函数生成并下载Excel文件。对于上传,使用`read`函数将上传的Excel文件解析为JSON并发送至后端。完整代码示例可在GitHub仓库[fullee/sheetjs-demo](https://github.com/fullee/sheetjs-demo)中查看。
460 10
|
8月前
|
存储 Java 数据库
学妹哭着找你教的Javaweb的文件上传与下载
该内容主要介绍了JavaWeb中的文件上传和下载操作。首先,通过一个JSP表单接收用户输入的图书信息和封面照片,表单数据提交给`AddBookServlet`。在Servlet中,使用SmartUpload库处理上传的图片,将图片以书号命名并保存至服务器,同时将图书信息存储到数据库。之后,请求转发到`ShowBook.jsp`展示所添加图书的详细信息。文件下载部分,通过`downServlet`完成,用户点击链接触发下载,Servlet设置响应头以附件形式提供文件下载。
68 1
|
8月前
【绝对贴心的代码】把网址生成二维码并且下载为图片文件,送到你嘴里的源码,关注点个赞呗!
【绝对贴心的代码】把网址生成二维码并且下载为图片文件,送到你嘴里的源码,关注点个赞呗!
|
8月前
|
监控 数据挖掘 数据安全/隐私保护
小小bat-自动文件上传
小小bat-自动文件上传
112 0
|
8月前
|
移动开发 前端开发 IDE
前端知识笔记(三十四)———HBuilder的下载与使用(详细步骤)
前端知识笔记(三十四)———HBuilder的下载与使用(详细步骤)
267 0
|
前端开发 Java 开发工具
一篇博客教会您SpringMVC文件上传、下载,多文件上传及工具jrebel的使用
一篇博客教会您SpringMVC文件上传、下载,多文件上传及工具jrebel的使用
57 0