文件上传漏洞靶机upload-labs(1到10)
前言
项目地址:https://github.com/c0ny1/upload-labs
pass-01(前端验证)
绕过方法:https://www.cnblogs.com/bk76120/p/12398729.html
pass-02(MIME类型过滤)
绕过方法:https://www.cnblogs.com/bk76120/p/13766912.html
pass-03(黑名单验证)
绕过方法:https://www.cnblogs.com/bk76120/p/13766916.html
pass-04(黑名单验证)
绕过方法1
先上传一个.htaccess文件在上传一个jpg文件即可。
.htaccess文件内容:AddType application/x-httpd-php .jpg
把jpg解析为PHP
利用前提
找到:LoadModule rewrite_module modules/mod_rewrite.so
去掉前面的注释符号#
找到Allowoverride None
改为Allowoverride All
成功
经过测试PHP带nts的都不成功,有时间好好看一下。
绕过方法2:利用PHP和Windows的特性
以下符号在正则匹配时的相等性
双引号" = 点好.
大于号> = 问号?
小于号< = 星号*
第一次上传文件到系统后Windows冒号特性会把冒号后的内容清空,但是不会把内容写进文件。
第二次上传:test.< 把内容写进test.php
pass-05(黑名单验证)
已经不能上传.htaccess了
绕过方法
pass-04第二种绕过方法
pass-06(黑名单验证)
没有判断大小写
修改扩展名.php为.Php即可
成功
pass-07(黑名单验证)
没有去首尾空
在*.php后面加上空格即可
成功
pass-08(黑名单验证)
没有过滤文件末尾的.
用burpsuite抓包改文件名为:**.php.
pass-09(黑名单验证)
什么是:$DATA以后再补充
未过滤:::$DATA
。
.php::$DATA
为后缀的文件在windows中会被自动去掉不符规则的字符,用burpsuite上传
pass-10(黑名单验证)
我们看看deldot函数是怎么写的。
删除文件末尾的.直到文件末尾不等于.
假如我们修改文件名为:**.Php. .
会经过的步骤
- 删除文件末尾的.,会变成:**.Php. #注意后面已经是[空格]了
- 转换为小写:**.php. #后面还有空格
- 去首尾空:
**.php.
- 上传成功