upload通关

pass 2  服务端(后端)验证

MIME类型校验就是我们在上传文件到服务端的时候,服务端会对客户端也就是我们上传的文件的Content-Type类型进行检测,如果是白名单(值得信任允许访问或者允许通过验证的名单)所允许的,则可以正常上传,否则上传失败

无法上传.php类型文件

上传文件形式被允许上传的文件

修改文件类型为.php

修改完成

 .php类型文件上传成功

pass 3  文件名后缀校验(黑名单绕过)

黑名单:不允许上传某些后缀文件

特殊的文件名绕过: .php3 .php4 .php5 .phtml .phtm .phps .phpt .php345

文件名后缀改为.php5

上传成功

pass 4  文件名后缀校验(配置文件解析控制)

黑名单过滤更加全面

但是遗漏了.htaccess

概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

这句话作用:将后续上传的文件都按照php进行执行

将3.txt改为.htaccess

先将.htaccess解析文件上传,利用其配置将白名单文件的类型解析成php文件类型。

再将.png上传,但是服务器上的1.png文件会被解析成php文件,以php形式显示

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

pass 5

本关可以直接上传php文件,但是通过源代码可知,本关对于上传文件做了检测,并且对文件名大小写做了转换。

在上传文件后先是删除文件末尾的点,然后首尾去空,去除字符串::$DATA,但是这些操作只执行一次。所以我们可以抓取数据包来修改绕过。我们在数据包中把后缀名改为.php. .,首先他发现有一个点,这时会把他去掉,又发现有一个空格,也会把它去掉,我们这时还有一个点,也就是.php. 由于他只是验证一次,所以不会在去掉我们的点。


上传.php类型文件,burp抓包,在数据包中把后缀名改为.php. .

 pass 6  文件名后缀校验(大小写绕过)

这一关同样是后端黑名单,但是没有strtolower()函数,可以使用大小写绕过黑名单

比如把.php格式改为.Php上传上去之后,就会自动解析为.php.

大小写绕过原理:

Windows 系统下,对于文件名中的大小写不敏感。例如:test.php 和 TeSt.PHP 是一样的

Linux 系统下,对于文件名中的大小写敏感。例如:test.php 和 TesT.php 就是不一样的

或者上传.php文件,然后抓包,将.php改变大小写

 pass 7  文件名后缀校验(空格绕过)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值