Upload-labs 文件上传靶场通关攻略(上)

文件上传是Web网页中常见的功能之一,通常情况下恶意的文件上传,会形成漏洞。

逻辑是这样的:用户通过上传点上传了恶意文件,通过服务器的校验后保存到指定的位置。

当用户访问已经上传成功的文件时,上传的Web脚本会被Web容器进行解析,从而对网站造成危害。

今天我们来研究下Upload-labs靶场的每关不同的攻略,从而对文件上传进行深入的了解。

Pass-1

前端JS验证

编写一句话木马文件a.php,并将文件名修改尾a.jpg。上传后抓包修改为a.php。

即可上传成功。

Pass-2

MIME验证,Burp抓包,修改Conetent-type为image/png.

即可上传成功

Pass-3

禁止了php,jsp,asp等后缀。大小写绕过失败,修改为php5后缀。

即可上传成功

Pass-4

先上传.htaccess系统解析文件进行重写

内容如下

<FileMatch "1.jpg">
SetHandler application/x-httpd-php
</FileMatch>

再上传包含一句话木马的1.jpg,此时网站将把1.jpg当作php文件进行解析执行。

Pass-5

大小写绕过,修改后缀为.Php5

即可上传成功

Pass-6

空格绕过,空格编码后形成00,进行绕过。

在1.php Burp抓包尾椎添加空格即可。

Pass-7

尾缀.添加.,即在1.php后添加.,修改为1.php.进行绕过

Pass-8

尾缀添加::$DATA,形成NTFS写入文件的效果,进行绕过

Pass-9

尾缀添加. .,类似于双写绕过,只过滤了一次.和一次的空格。

Pass-10

直接上传发现1.php 被修改为1. ,对敏感词汇进行了替换

尝试进行双写绕过将1.php,修改为1.pphphp,进行绕过

总结:前十关我们可以总结如下几种文件上传绕过的方式。

1.前端JS验证:Burpsuite抓包修改尾缀

2.MIME验证:Burpsuite抓包修改Content-type

3.黑名单验证:Burpsuite抓包进行文件尾缀的爆破

4.解析文件可重写:重写解析文件,将JPG文件解析为PHP文件进行执行

5.大小写绕过、双写绕过

6.尾缀添加点,空格,::$DATA进行截断绕过

Upload-labs 文件上传靶场通关攻略(上)的更多相关文章

  1. Upload-labs 文件上传靶场通关攻略(下)

    Upload-Labs靶场攻略(下) Pass-11 GET型传参,上传目录可设置,考虑00截断,在/upload/后添加1.php%00,即可上传 Pass-12 POST型传参,上传目录可设置,P ...

  2. Web文件上传靶场 - 通关笔记

    Web应用程序通常会提供一些上传功能,比如上传头像,图片资源等,只要与资源传输有关的地方就可能存在上传漏洞,上传漏洞归根结底是程序员在对用户文件上传时控制不足或者是处理的缺陷导致的,文件上传漏洞在渗透 ...

  3. 从本地向 Github 上传项目步骤攻略(快速上手版)

    最近想把之前自己做的一些好玩的项目共享到Github,网上找了一圈上传教程,都感觉写的太深奥.复杂,云里雾里,特把自己的方法纪录如下: PS:这种方式一般适用于:开始做项目时,没有直接在github上 ...

  4. jspSmartUpload上传下载全攻略

    http://blog.itpub.net/92037/viewspace-788900/

  5. php 文件上传简单类---限制仅上传jpg文件

    php 文件上传代码,限制只能上传jpg格式文件,也可以自行添加其它扩展名的文件. <?php /* * 图片上传类 仅限JPG格式图片 * edit by www.jbxue.com at 2 ...

  6. ThinkPHP 文件上传到阿里云OSS上(干货)

    参考:http://www.thinkphp.cn/extend/789.html 1.前往阿里云github下载SDK包:https://github.com/aliyun/aliyun-oss-p ...

  7. MVC文件上传01-使用jquery异步上传并客户端验证类型和大小

    本篇体验MVC上传文件,从表单上传过渡到jquery异步上传. MVC最基本的上传文件是通过form表单提交方式 □ 前台视图部分 <% using(Html.BeginForm("F ...

  8. 文件上传三:base64编码上传

    介绍三种上传方式: 文件上传一:伪刷新上传 文件上传二:FormData上传 文件上传三:base64编码上传 Flash的方式也玩过,现在不推荐用了. 优点: 1.浏览器可以马上展示图像,不需要先上 ...

  9. MVC文件上传03-使用Request.Files上传多个文件

    本篇体验在控制器方法中使用controllerContext.HttpContext.Request.Files上传多个文件.兄弟篇为: MVC文件上传01-使用jquery异步上传并客户端验证类型和 ...

随机推荐

  1. github push pull error port 443: Timed out

    最近github只有开代理才能打开,但是即使能打开,进行push或者pull会经常报类似error port 443: Timed out的错误,网上搜了很久才找到解决办法. 首先要查询当前本机使用的 ...

  2. 3、搭建 rsync备份服务器

    yum install rsync -y rsync(873):数据同步,把一台服务器上的数据以何种权限同步到另一台服务器上,是linux 系统下的数据镜像备份工具.使用快速增量备份工具Remote ...

  3. php mkdir 创建多级目录以及修改权限

    mkdir() 用法:mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径:第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访问权:注意:mode ...

  4. nohup &的用法、进程查看以及终止

    p.p1 { margin: 0 0 2px; font: 16px ".PingFang SC" } p.p2 { margin: 0; font: 12px "Hel ...

  5. leetcode 面试题 17.22. 单词转换(DFS+回溯)

    题目描述 思路分析 这题回溯,先想出它的空间解是什么,这里空间解,其实就是给的原字符串到结束字符串中间的变形过程,那么就可以容易的画出一个解空间树,用深度搜索进行搜索, 剪枝后,进入下一个维度,再进行 ...

  6. Elasticsearch-02-入门:集群、节点、分片、索引及常用API

    2. 基础入门 2.1 重要概念 2.1.1 集群和节点 1)cluster Elasticsearch集群是由一个或多个节点组成,通过其集群名称来进行唯一标识.节点在搜索到集群之后,通过判断自身的 ...

  7. docker安装应用整理

    nginx安装: docker run \ --name nginx \ --volume /var/data/nginx/nginx.conf:/etc/nginx/nginx.conf \ --v ...

  8. Oracle-索引分裂研究

    目录 索引分裂介绍 分类 索引分裂实验 基础环境准备 基础信息统计--之前 数据插入 基础信息统计--之后 Trace 数据统计 数据分析 索引PRI_ID之dba_extents视图 索引PRI_I ...

  9. SECURECRT 连接锐捷交换机CONSOLE

    协议选择Serial,端口选择COM1.波特率设置为9600.RTS/CTS要把勾去掉(关闭流控功能)

  10. C语言:sizeof判断数据类型长度

    #include <stdio.h> int main() { short a = 10; int b = 100; long c=100; int short_length = size ...