upload-labs pass10-14

pass-10 . .绕过(点空格点绕过)

查看源码

这是一个后端黑名单检查

str_ireplace() 的作用是寻找文件名中存在的黑名单字符

上传一个php文件

 

查看提示

 

可以把PHP文件后缀名改为可以上传的文件类型

上传成功

 

pass-11 双写绕过

查看源码

查看提示

 

提示中说会从文中去除以上那些字符

看代码可以看出来它是将上传文件扩展名包含 $deny_ext中的话变成空扩展名,也就是没有扩展名。

使用了str_ireplace()函数,这个函数他不区分大小写的替换函数

比如上传一个1.phtmhp,在执行完函数后就变成了1.php。因为里面有htm就会替换为空

str_ireplace()的作用是寻找文件名中存在的黑名单字符

我们就上传一个php文件,然后抓包,改一下后缀

 

 

上传成功

 

到浏览器访问一下

 

pass-12 %00截断绕过(GET)

查看一下源码

查看提示

从源码中看到只允许上传.jpg|.png|.gif类型的文件

上传一个php

 代码对上传进行了白名单限制,但也对上传的文件进行了文件名重构

文件截断绕过的检测原理是:

由于00代表结束符,PHP会把00后面的所有字符删除

但是截断的条件是PHP版本小于5.3.4、magic_quotes_gpc为off状态

因为magic_quotes_gpc为ON状态会把所有引号进行转义

 

 

绕过方法:

GET方法中绕过加入00截断(在URL里)

POST方法中传入%00并解码(十六进制)

截断的文件被重命名了,并且路径是可控的。

 

 上传文件,抓包

可以看到保存的路径在URL中,改掉原来的文件后缀,并且再URL中加入%00

 

在url中%00表示ascii码中的0,而0作为特殊字符保留,表示字符结束,也就是说,在保存文件的时候,如果路径参数(例: $img_path)中出现了%00,就会认为路径到这里就已经结束了,从而忽略后面一系列的参数,比如$img_path = ../upload/2.php%00/2.jpg,此时,路径参数的后半部分就会被%00给截断,从而变成$img_path = ../upload/2.php

pass-13 %00截断绕过(POST)

查看源码

 

只允许上传.jpg|.png|.gif类型文件

和12不同的是这个是post方式

查看源码

上传一个文件,抓包

save_path不在URL中了,在post数据里

所以我们要在这里添加上路径并且加上%00

这里要注意十六进制转码

 

pass-14 图片马绕过

 

该关需要上传图片马

什么是图片马?

图片马指的是代码写入后不被破坏图片为前提,图片仍可以正常打开。图片马是web渗透测试时的必备。

所以我们先来制作一个图片马

先准备好图片和asp文件

Win+R——cmd

cd到原始图片的目录路径下

我们就可以得到一个图片马

 

我们需要做三种后缀的图片马,也是以上步骤

 

上传tpm.gif,上传成功

 

在本关页面“文件包含漏洞”几个字上面点一下,可以得到文件包含漏洞所在url和代码,从如下代码可知,图片马可以通过file参数包含。

 

 

要上传成功后,被作者提供的包含漏洞包含后能够输出OK即可。

其余后缀名的文件也是如此操作

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值