今年十八,喜欢文件上传

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

前言


🍀作者简介:被吉师散养、喜欢前端、学过后端、练过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允许解析其他后缀

目录
相关文章
|
Linux 编译器 Shell
深入理解Linux中的动态库与静态库
深入理解Linux中的动态库与静态库
|
4月前
|
人工智能 运维 自然语言处理
开源协议下的知识管理:轻量化系统的定制与复用
在技术文档、产品手册、FAQ体系、内部知识库等场景中,非结构化文档处理效率低、知识检索精准度不足、系统部署维护成本高是普遍痛点。AI驱动的轻量化知识管理与文档解析技术,可实现多格式非结构化文档标准化转换与高效知识运营,形成从文档解析到知识复用的完整闭环。
299 2
|
4月前
|
Ubuntu 安全 Unix
如何禁用或者移除 Ubuntu 中的 cloud-init
如何禁用或者移除 Ubuntu 中的 cloud-init
333 0
|
11月前
|
人工智能 并行计算 调度
AI创业公司的算力困境,远比你想象的更复杂
当前AI创业公司面临严峻“算力困局”:不仅受制于高昂成本,更受限于技术封锁、生态绑定与资源低效。算力获取难、用不起、用不好,正成为制约创新的关键瓶颈。
|
Shell 开发工具 git
把git-bash添加到右键菜单中
记得第一次安装git的时候,就是因为Git安装的时候会默认一次性Git Bash Here,Git GUI Here等三个会一起出现,而本人由于洁癖就卸载了重新安装了一次拒绝添加右键菜单的行为。 然而再开发途中,回到桌面点exe再cd命令到该文件夹,着实麻烦,于是懒癌战胜洁癖,开始着手了。
552 0
|
存储 人工智能 自然语言处理
AI代理内存消耗过大?9种优化策略对比分析
在AI代理系统中,多代理协作虽能提升整体准确性,但真正决定性能的关键因素之一是**内存管理**。随着对话深度和长度的增加,内存消耗呈指数级增长,主要源于历史上下文、工具调用记录、数据库查询结果等组件的持续积累。本文深入探讨了从基础到高级的九种内存优化技术,涵盖顺序存储、滑动窗口、摘要型内存、基于检索的系统、内存增强变换器、分层优化、图形化记忆网络、压缩整合策略以及类操作系统内存管理。通过统一框架下的代码实现与性能评估,分析了每种技术的适用场景与局限性,为构建高效、可扩展的AI代理系统提供了系统性的优化路径和技术参考。
970 4
AI代理内存消耗过大?9种优化策略对比分析
|
11月前
|
机器学习/深度学习 资源调度 监控
【状态估计】基于UKF、AUKF的电力系统负荷存在突变时的三相状态估计研究(Matlab代码实现)
【状态估计】基于UKF、AUKF的电力系统负荷存在突变时的三相状态估计研究(Matlab代码实现)
383 0
|
人工智能 弹性计算 运维
亚太唯一!阿里云Serverless计算产品进入Forrester领导者象限
近日,Forrester发布《Serverless Development Platforms, Q2 2025》报告,阿里云函数计算FC与Serverless应用引擎SAE在21项评测中斩获9项最高分,成为国内唯一进入领导者象限的科技公司。
|
XML JSON 安全
深度思考:总结SOA、WSDL、SOAP、REST、UDDI之间的关系
总结起来,SOA是面向服务的架构原则,WSDL用于描述这些服务的接口,SOAP和REST是实现这些服务通讯的两种不同方法,SOAP强调严格的规范和协议扩展性,而REST强调易用性和轻量级通信。最后,UDDI定义了服务发现的机制,虽然在现实中应用不广,但在理论上是链接消费者和服务提供者的要素。这些组件和协议互相支持,共同构成了实现和利用SOA的完整生态系统。
569 2

热门文章

最新文章