前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >今年十八,喜欢文件上传

今年十八,喜欢文件上传

作者头像
吉师散养基地
发布2022-11-20 13:51:10
2900
发布2022-11-20 13:51:10
举报
文章被收录于专栏:我奏是太阳我奏是太阳

前言

🍀作者简介:被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。 🍁个人主页:红中 🫒每日emo:趁思念、、 🍂相应专栏:CTF专栏

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

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

例如

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

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

这便是文件上传漏洞

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

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

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

再想想,这玩意有啥危害?

打个比方,两军交战,对面那方被我派了个奸细,那么只要在对方军队不严格校验的情况下,我是完全可以知道他们内部的一举一动的 再夸张点,这个奸细有实力的,一进去就当上个不大不小的将领,那么排除兵变的因素,这哥们是不是可以自己创建个亲卫军(打个比方,我对这玩意不是很熟 那让这哥们再nb一点,一进去就当上了二把手,他是不是可以自由解散部分小分队,是不是还可以内推我们这边的人

这就是通过上传恶意脚本文件(也被称为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允许解析其他后缀

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

index.php.xiadade

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

我滴评价是,理论可行,实战看心情

先写到这,吃饭去了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  •  文件上传相关知识(非重点:
  • JS检测绕过攻击
    • 1、禁用js
      • 2、先过去再说
        • 3、劳资直接改代码
        •  文件后缀绕过攻击
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档