首先

常见黑名单绕过

$file_name = deldot($file_name);//删除文件名末尾的点
上传 shell.php.

$file_ext = strtolower($file_ext); //转换为小写上传 shell.PHP (大小写绕过)

$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
上传 shell.php::$DATA

$file_ext = trim($file_ext); //首尾去空
上传 shell.php (后跟空格)

前端验证

pass1(前端检测函数)

一般上传错误类型,若有弹窗提示那就是前端检测,没有弹窗的话就应该是后端

查看提示,在客户端进行……,说明在浏览器F12可以进行修改

直接F12定位输入框

找到敏感函数checkfile(),直接将其删除

上传木马php

上传成功,复制下面返回地址用蚁剑连接即可

连接成功

后端检测

pass2(MIME类型)

服务端进行MIME检查

需要上传图片

MIME检查是后端PHP代码只对content-type进行检查,那么就可以

使用bp抓包,修改上传的PHP的content-type为image/png

 注意有两个content-type,不要改错。

放到重发器进行重发测试

http://burp/show/1/1zeq145c9byupwa79ryqxcikb6w44x41

查看链接,上传成功

复制链接,蚁剑连接

黑名单绕过

pass3(同类型其他后缀名)

禁止上传php后缀格式的文件

禁止上传php那就试试php5

等价后缀名

上传成功

复制地址到蚁剑,能连上但是会报错

看了别人的wp了解以后才知道是数据库版本问题

这里我就贴出网址不演示操作了Upload-labs 1-21关 靶场通关攻略(全网最全最完整)_upload靶场_晚安這個未知的世界的博客-CSDN博客

修改完以后蚁剑连接正常

另外,这种攻击方式也成为黑名单绕过

pass4(.htaccess

方法一(文件后缀绕过)

.htaccess文件

很多后缀都限制住了,这道题把我难到了,无奈看了wp,学习到了一个新知识:.htaccess文件

前提是服务器有相关的配置

在这道题我们需要利用.htaccess文件

如果在一个黑名单中添加了很多后缀名,唯独没有对htaccess过滤,可以直接上传.htaccess来设置使用php解析任意文件。

先创建一个文件,用记事本打开

里面写入内容

<filesmatch "\.jpg"="">
SetHandler application/x-httpd-php

  

然后另存为所有文件格式

然后到网站上传

上传完以后再上传一句话木马图片

用bp抓包

在重发器中找到文件上传的地址

连接到蚁剑

方法二(PHP和Windows环境叠加)

首先用bp拦截,然后观察提交的文件的后缀

利用Windows和php对文件检测的特点:构造出muma1.php:.jpg的文件格式

首先,在文件上传到服务器时,php检测到是jpg结尾的文件时可以通过

然后,window检测发现有:(Windows文件命名规则中不能出现:)就自动省略的冒号及后面的东西了,所以就剩下muma1.php,最后就绕过成功

 虽然已经上传上去了,但是木马还没有写到图片里,所以还得进行追加

需要将文件名改成muma1.<再上传

然后回到网页复制链接到蚁剑即可

pass5(加上空格和一个点)

也过滤了pass4的绕过格式

那就尝试一下常见黑名单绕过,先用bp抓包在原有基础上改变后缀(加上空格和一个点)

上传成功,在火狐中解析

复制图片链接到蚁剑,连接成功

pass6

和上面的pass5方法一样,直接简单黑名单绕过

pass7

换了一种出题风格

但是做题方式还是和上面的pass5一样,因为不涉及到后缀的问题,直接利用Windows和php语言解析的特性绕过

pass8( ::$DATA)

文件流

本以为这题将毫无新意

但是用前面的方法不管用了

这时候只能换一种方法了(查看了wp才知道)

前面几个pass源代码都会有Windows文件流过滤

但是这个没有,那我们就可以构造这个后缀  ::$DATA

继续用bp抓包修改后缀

然后上传成功,连接蚁剑

pass9(.空格.)

只允许上传图片的格式

这时候我们在客户端上传图片,但是用bp改包

改成常见黑名单绕过发现失败

这时候查看wp知道,这道题需要后缀加  .空格.

加上以后再进行测试则成功了

pass10(双写字符)

此次会从文件名中去除部分字符

采用的方法就是双写字符

成功绕过

连接蚁剑,不过最后失败了

将图片地址复制到网址栏发现后缀还是没了

反思发现双写文件后缀必须是一样的后缀,并且后缀要为小写,不然不成功

最后成功了

pass11(00截断

题目新颖,没见过这种表达方式

查看源码

查看了wp发现这是常见的白名单绕过题目

查看了源码发现这里只允许三种文件格式通过

因此通过简单的黑名单绕过是不可行的

这时候得用bp抓包进行修改

这个时候采用一种新的知识

00截断

我们在bp中修改路径

其中上面得%00是空格的意思,因为在Windows系统中文件命名不包含空格,所以会在空格及其后面的字符都给截掉

这个时候再上传就成功了

pass12

和上一题一样的提示,但是同样的方法过不去了

继续bp抓包,不过此次地址的地方换了

而且空格不能直接%00了,要二进制的00

那就去hex那里输入然后再复制“�”

然后发送过去就行了

pass13(文件头

检查开头的两个字节

这种情况我们直接上传一句话木马图片,然后再用00截断的方式解析图片,最后获得shell

但是这里没有文件上传到的目录,所以我们还是换一种方式

在一句话木马的php文件上加入“GIF89a”的文件头再上传即可,正常上传.php代码

改文件头

上传成功以后还要在做点手脚,因为文件在服务器中解析成了图片,所以需要在网址出进行点改正——加上“include.php?file=”执行远程包含漏洞

不过这个网站好像没有这个漏洞

查看wp才知道原来是要自己建一个php文档来生成远程包含漏洞

在这里我就没做了,感觉没什么意义,自己知道了方法就好了

pass14(getimagesize()函数)

题目要求

首先了解一下getimagesize()函数的作用

getimagesize函数会对目标的十六进制的前几个字符串进行读取。比如GIF的文件头为GIF89a,png的文件头为PNG

无所谓,直接上传一句话木马的图片

上传成功

进行文件包含执行木马

pass15(exif_imagetype()函数)

查看exif_imagetype()函数

还是采用一句话木马图片

和上一题结果一样没有新意

pass16(二次渲染)

二次渲染的题目

上传一句话木马图片,发现上传后的图片经过渲染木马被移走了

这种情况就需要找它不会渲染的文件部分了,用010的对比功能进行对比

可以发现还是挺多地方是相同的,说明并没有被渲染,所以可以在这些地方插入一句话木马

再次进行上传后得到图片,发现木马还在,上传成功

pass17(时间竞争)

全新版本

查看代码

观察源码可知,对于上传的文件处理是先保存到服务器,再对比拓展名,如果拓展名不属于白名单中的后缀,便将保存的文件删除。
这里注意到先保存再进行删除,也就是说有很短的一段时间这个文件是被保存并且可以访问的,我们利用这个先后顺序的中间差时间进行访问,访问到文件即可执行代码。
因为时间差很短,所以我们需要使用脚本进行访问。

意思是只能是下面的三种文件上传,否则其他的格式的文件一上传就会被删除

这种情况可以利用bp强行绕过

直接上传muma.php,然后用bp抓包

然后发送到测试器

进行=参数设置

直接进行操作,然后再访问网站对应的上传的目录和我们上传的木马文件

然后再用bp的测试器一直进行攻击,即两边同时进行,利用的就是网站访问muma.php文件,在bp一直上传muma.php和服务器在快速删除muma.php文件的时候,争取快速打开占用muma.php文件,占用文件,执行里面的代码,导致服务无法删除文件,从而达到目的

然后同时启动两个测试器

最后服务器会保存有文件,就成功挂马了

pass18

题目说需要代码审计,但是代码量好大,有点不想看

看了大概得介绍和上一题的防护措施类似,都是竞争绕过型

不过和17不同,这个需要上传图片类型,即一句话木马图片

当上传的速度够快时,服务器就有可能来不及重新命名

首先打开bp抓包

然后在重发器快速的进行重发,直至服务器中出现未重命名成功的文件(奈何手速不够快,我自己试了就没成功过)

道理是这么个道理,那就这样吧

pass19(/.绕过)

题目提示看不出来什么东西

代码审计一下,黑名单绕过

其中这里move_uploaded_file函数有个特点

所以我们直接修改文件后缀为muma2.php/.即可

成功连接

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. 解决ngnix服务器上的Discuz!x2.5 Upload Error:413错误

    1.修改php.ini sudo nano /etc/php5/fpm/php.ini #打开php.ini找到并修改以下的参数,目的是修改上传限制 max_execution_time = 900 ...

  9. 页面无刷新Upload File

    页面无刷新Upload File. 利用jquery.form.js的ajaxForm提交文件. 具体参考以下代码: 前台html <%@ Page Language="C#" ...

  10. 基于Picture Library创建的图片文档库中的上传多个文件功能(upload multiple files)报错怎么解决?

    复现过程 首先,我创建了一个基于Picture Library的图片文档库,名字是 Pic Lib 创建完毕后,我点击它的Upload 下拉菜单,点击Upload Picture按钮 在弹出的对话框中 ...

随机推荐

  1. 使用调试工具调试博图TCP连接所遇到的问题

    PLC端使用的指令 PLC为服务器端,电脑为客户端,以上为服务器与客户端的配置参数 启动连接后连接成功,PLC的IP地址也可以ping通 ------------------------------- ...

  2. 为什么list.sort()比Stream().sorted()更快?

    昨天写了一篇文章<小细节,大问题.分享一次代码优化的过程>,里面提到了list.sort()和list.strem().sorted()排序的差异. 说到list sort()排序比str ...

  3. 操作系统实验——系统调用:获取当前进程pid和ppid

    目录 一.题目介绍 二.实验思路 三.核心代码 四.遇到的问题及一些解决方法 五.参考文献 PS:博客只是提供一个简要的思路,互相学习. 一.题目介绍 显示当前进程的pid和父进程的pid,主要考察如 ...

  4. 《Linux基础》09. Shell 编程

    @ 目录 1:Shell 简介 2:Shell 脚本 2.1:规则与语法 2.2:执行方式 2.3:第一个 Shell 脚本 3:变量 3.1:系统变量 3.2:用户自定义变量 3.2.1:规则 3. ...

  5. Lazada商品详情(代码封装)以及应用

      编辑切换为居中 Lazada平台的分析可以从以下几个方面入手: 1. 市场分析:对Lazada平台市场进行分析,及时了解市场趋势和变化,调整企业的经营策略.可以监测Lazada平台上商品的销售量. ...

  6. crontab定时任务不执行的一些原因总结

    参考博文地址: https://www.jb51.net/article/154290.htm声明:本文章是在以上地址博文基础上进行整理学习,如有侵权,请联系博主删除,感谢知识共享,一起进步,加油鸭 ...

  7. torch-1 tensor & optim

    开个新坑, pytorch源码阅读-从python代码开始读起. torch/ 1.tensor.py 继承自torch._C._TensorBase , 包括各种操作,TODO:随后看cpp代码 _ ...

  8. ptp 时钟同步

    转载请注明出处: PTP(Precision Time Protocol)的功能可以帮助实现网络中各个节点的时钟同步,以提供更精确的时间参考. 作用: 时钟同步:通过PTP协议,在网络中不同节点之间实 ...

  9. 【算法】湖心岛上的数学梦--用c#实现一元多次方程的展开式

    每天清晨,当第一缕阳光洒在湖面上,一个身影便会出现在湖心小岛上.她坐在一块大石头上,周围被茂盛的植物环绕,安静地沉浸在数学的世界中. 这个姑娘叫小悦,她的故事在这个美丽的湖心小岛上展开.每天早晨,她都 ...

  10. 拉普拉斯金字塔在多图HDR算法中的应用以及多曝光图像的融合算法简介。

    在SSE图像算法优化系列二十九:基础的拉普拉斯金字塔融合用于改善图像增强中易出现的过增强问题(一) 一文中我们曾经描述过基于几种高频融合法则的拉普拉斯金字塔融合算法,那里是主要针对2副图像的.实际的应 ...