upload-labs

Pass-1 前端验证绕过

Pass-2 Content-Type方式绕过

修改Content-Type: image/jpeg、image/png、image/gif(上述三种任选其一),重新发包

.

Pass-3 黑名单绕过

在某些特定环境中某些特殊后缀仍会被当作php文件解析 php、php2、php3、php4、php5、php6、php7、pht、phtm、phtml。

Pass-4 .hataccess绕过

  • 采用.htaccess文件来帮助绕过
  • .htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
  • htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
<FilesMatch "12.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
意思就是如果文件里面有一个后缀为12.png的文件,他就会被解析成.php

Pass-5 大小写绕过

查看源码

发现少了大小写

Pass-6 空格绕过

查看提示及源码发现少了收尾去空

尝试修改数据包上传

Pass-7 去掉末尾的点

//完整的过滤
		$file_name = deldot($file_name);//删除文件名末尾的点
		$file_ext = strrchr($file_name, '.');
    $file_ext = strtolower($file_ext); //转换为小写
    $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
    $file_ext = trim($file_ext); //收尾去空

//第七关代码
		//删除文件末尾的点
 		$file_ext = strrchr($file_name, '.');
    $file_ext = strtolower($file_ext); //转换为小写
    $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
    $file_ext = trim($file_ext); //首尾去空

Pass-8 去除字符串

少了去除字符串

没有对后缀名中的’::$DATA’进行过滤。
在php+windows的情况下:
如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,
不会检测后缀名且保持"::$DATA"之前的文件名。
利用windows特性,可在后缀名中加” ::$DATA”绕过

Pass-9 点 空格 点

通过源码发现,所有的过滤都是一次的,并未对其进行循环过滤。也就是说源码中提到的删除空格,删除点都是只删除一次,那么可以在数据包中将php后缀添加. .,形成.php. .,由于只验证一次,所以删除一个点和一个空格后就不在删除了

Pass-10 双写

看源码发现,有一个替换操作,尝试双写

Pass-11 %00截断

上传一张正确图片,发现是get提交,那么我们不妨在这块将路径改掉,改为upload/web.php%00,那么后面不管是什么东西都会被截断掉,然后经过move_uploaded_file函数将临时文件重新复制给我们的截断之前的文件路径,当然,我们还是要上传jpg文件的

利用方法:设置上传路径为upload/12.php%00 ,添加12.php%00内容为了控制路径,上传文件后缀为白名单即可

Pass-12 路径可控 POST %00 截断

由于路径可控依旧采取%00截断,但是是post提交,我们需要改下编码如下图,get不用修改是因为可以自动识别%00编码

Pass-13

使用 图片马 + 文件包含 绕过

http://127.0.0.1/upload-labs/include.php?file=upload//1420240728152424.gif

Pass-14、15

同上

Pass-16 要二次渲染

图要传二次渲染的图同上

Pass-17 条件竞争

<?php @fputs(fopen('123.php',w),'<?php phpinfo();?>');?>//当前目录生成123.php

发送到攻击模块

清参数

攻击

127.0.0.1/upload-labs/upload/mm17.php一直访问,创建成功后就可以停止攻击了

Pass-18

传图片马,同13

Pass-19

保存为1.php.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值