upload通关

pass 7(黑名单验证,空格绕过)

源码中无首尾去空的操作

Windows 系统下,对于文件名中空格会被作为空处理,程序中的检测代码却不能自动删除空格,从而绕 过黑名单。

上传一个.png文件,抓包

修改文件类型为.php加空格

pass 8(黑名单验证,点号绕过)

没有使用deldot()过滤文件名末尾的

将文件后缀名.png改为.php.

pass 9(黑名单验证,特殊字符::$DATA绕过)

对上传的文件后缀名没有做去::$DATA处理,所以我们可以利用::$DATA后缀

Windows系统下,如果上传的文件名为1.php::$DATA会在服务器上生成一个1.php文件,其中内容和所上传文件内容相同,并被解析。

补充知识:php在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持"::$DATA"之前的文件名 他的目的就是不检查后缀名。
上传1.png,抓包,将文件后缀名.png改为.php::$DATA

 

但是无法在路径中找到

删除路径中的::$data,可以访问

 

 pass 10

本关只允许上传.jpg .png .gif后缀的文件

只过滤一次点,方法:“点+空格+点”

 pass 11

str_ireplace()将文件名中符合黑名单的字符串换成空白

 方法:利用双写黑名单字符,对字符串的一次过滤后拼接出php,修改文件后缀为.pphphp

 

上传成功

pass 12 白名单校验(GET型0x00截断)

白名单:只允许上传以下几种类型文件

 

可以在文件的路径做手脚,利用00截断,提前把文件截断,把文件名放在目录径上

存储路径

添加phpinfo.php%00内容,设置上传路径为 upload/phpinfo.php%00

上传的文件的后缀名在白名单内即可,例如:1.png,保存后为upload/phpinfo.php%001.png,但是服务器读取到%00时会自动结束,将文件内容保存至phpinfo.php中(%00的截断作用)

 上传成功

pass 13 (POST型0x00截断)

还是白名单校验

从POST方式获取

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值