文件上传漏洞靶机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. .会经过的步骤

  1. 删除文件末尾的.,会变成:**.Php. #注意后面已经是[空格]了
  2. 转换为小写:**.php. #后面还有空格
  3. 去首尾空:**.php.
  4. 上传成功

posted @ 2020-03-02 22:52  iZero  阅读(1240)  评论(0编辑  收藏  举报