upload-labs pass02-05攻略(详细)

pass-02

进入关卡,查看提示和源码,根据源代码我们可以发现,这一关是对文件类型验证,也就是验证MIME信息。

接下来我们进行文件上传,使用burpsuit抓包,将Content-Type修改为允许上传的类型(image/jpeg、image/png、image/gif)三选一。 

 

 修改完成后发送成功,文件已经上传

访问一下文件所在路径

 Pass-03

查看提示和源代码,我们可以发现是一个黑名单验证,它定义了不可以上传的文件后缀,但是它的黑名单定义是不完整的,我们是可以通过修改其它文件后缀实现绕过的,用.phtml .phps .php5 .pht进行绕过。这里我们直接上传一个.php5文件

 用burpsuite抓取数据包,发现已经成功上传。因为上传上去的文件名会改变,但是在数据包中有回显(实战中可能没有),所以我们还是可以访问的。

访问一下上传文件

 当发现访问的时候是空白页时,要在apache的httpd.conf中有如下配置代码:AddType application/x-httpd-php .php .phtml .phps .php5 .pht,如果没有是无法解析php5代码的,访问的时候就是一个空白页。

 Pass-04

 查看提示和源码,发现禁止上传的文件有很多

我们尝试上传一个.htaccess配置文件,将shell.jpg图片当作php代码进行解析。

我们首先创建一个.htaccess文件,里面写上代码

<FilesMatch "shell.jpg">
SetHandler application/x-httpd-php

这串代码的意思是如果文件中有一个shell.jpg的文件,它就会被解析为.php。我们把.htaccess文件上传。

这里注意:

.htaccess文件不能起名字,他就是.htaccess文件,如果你将他改为4.htaccess是不可以的,它就会无法解析。在实战中有可能上传上去这个文件会被自动重命名,被重命名了就不可以了。

上传成功后,我们把图片用编辑工具打开,里面写上php代码。再进行上传这个新的shell.jpg文件。

上传完成后我们访问这个shell.jpg文件

 Pass-05

查看提示和源码,发现代码中对于收尾去空,删除末尾的点,去除字符串::$DATA,转换为小写这些东西只是验证了一次,它并没有进行循环验证。

我们的绕过思路就是在数据包中把.php后缀名改为.php. .

在文件上传的过程中首先它发现有一个点,这时它会把这个.去掉,又发现有一个空格,也会把空格去掉,这时文件后缀还有一个点,也就是.php. 由于它只是验证一次,所以不会再去掉我们的点,这时就可以上传成功,也可以解析成功。如下图:

上传成功。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值