文件上传之路之八:黑名单类

绕过黑名单上传

上传模块,有时候会写成黑名单限制,在上传文件的时获取后缀名,再把后缀名与程序中黑名单进行检测,如果后缀名在黑名单的列表内,文件将禁止文件上传

黑名单代码分析

在这里插入图片描述
首先是检测 submit 是否有值,获取文件的后缀名,进行黑名单对比,后缀名不在黑名单内,允许上传

绕过黑名单上传的攻击

上传图片时,如果提示不允许 php、asp 这种信息提示,可判断为黑名单限制, 上传黑名单以外的后缀名即可。 在 iis 里 asp 禁止上传了,可以上传 asa cer cdx 这些后缀,如在网站里允许.net 执行 可以上传 ashx 代替 aspx。如果网站可以执行这些脚本,通过上传后门即可 获取 webshell。 在不同的中间件中有特殊的情况,如果在 apache 可以开启 application/x-httpd-php 在 AddType application/x-httpd-php .php .phtml .php3 后缀名为 phtml 、php3 均被解析成 php 有的 apache 版本默认就会开启。 上传目标中间件可支持的环境的语言脚本即可,如==.phtml、php3==

将文件后缀名改成符合要求的后缀名即可完成上传

在这里插入图片描述

通过上传的文件返回的路径直接获取信息

在这里插入图片描述

htaccess重写解析绕过上传

上传模块,黑名单过滤了所有的能执行的后缀名,如果允许上传.htaccess。htaccess 文件的作用是可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定 IP 地址的用户、只允许特定 IP 地址的用户、禁止目录列表,以及使用其他文件作为 index 文件等一些功能。 在 htaccess 里写入 SetHandler application/x-httpd-php 则可以文件重写成 php 文件。要 htaccess 的规则生效,则需要在 apache 开启 rewrite 重写模块,因为 apache 是多数都开启这个模块,所以规则一般都生效
在这里插入图片描述

黑名单上传代码分析

在这里插入图片描述
黑名单限制的文件名有:

".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",
".pHp3",".pHp2","pHp1",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",
".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",
".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf"

htaccess重写解析攻击

上传.htaccess文件

在这里插入图片描述

.htaccess内容为:

<FilesMatch "jpg">
SetHandler application/x-httpd-php
</FilesMatch>

上传恶意jpg文件

在这里插入图片描述

获取后台信息

在这里插入图片描述

大小写绕过上传

有的上传模块后缀名采用黑名单判断,但是没有对后缀名的大小写进行严格判断,导致可以更改后缀大小写可以被绕过。如 PHP、 Php、 pHp

大小写代码分析

没有大小写转换代码

在这里插入图片描述

有大小写转换代码

在这里插入图片描述

将文件后缀名进行大小写转换

观察源代码,选择没有黑名单限制的文件上传方式
在这里插入图片描述

获取信息

在这里插入图片描述

文件绕过上传

在上传模块里,采用黑名单上传,如果没有对空格进行去掉可能被绕过

空格绕过上传代码分析

有去掉空格代码

在这里插入图片描述

没有去掉空格代码

在这里插入图片描述
检测 submit 后 上传目录存在时,进入黑名单判断。如果文件后缀名在黑名单里。 不允许上传,但是文件后缀名,没有过滤空格,可以添加空格绕过

空格绕过上传攻击

抓包上传

在这里插入图片描述

获取信息

在这里插入图片描述

利用windows系统特征绕过源码分析

文件名尾不加点代码

在这里插入图片描述

文件名尾加点代码

在这里插入图片描述
所以对于这种漏洞,可以通过在文件名尾加点的方式绕过,同样是黑名单禁止上传,但是可以上传.php.这种文件后缀

抓包上传获取路径

在这里插入图片描述

获取到信息

在这里插入图片描述

NTFS 交换数据流::$DATA 绕过上传

如果后缀名没有对::$DATA 进行判断,利用 windows 系统 NTFS 特征可以绕过上传

NTFS交换数据流::$DATA代码分析

有过滤掉$DATA后缀名的操作

在这里插入图片描述

没有过滤掉$DATA后缀名的操作

在这里插入图片描述
同样用黑名单过滤后缀名。但是程序中没有对::$DATA进行过滤可以添 加:: $DATA 绕过上传

NTFS交换数据流::$DATA攻击绕过上传

burp suite 抓包

在这里插入图片描述

修改后缀名为php::$DATA

在这里插入图片描述

获取到文件路径

在这里插入图片描述

利用 windows 环境的叠加特征绕过上传

在 windwos 中如果上传文件名 moonsec.php:.jpg 的时候,会在目录下生产空白的 文件名 moonsec.php
再利用 php 和 windows 环境的叠加属性,
以下符号在正则匹配时相等
双引号" 等于 点号.
大于符号> 等于 问号?
小于符号< 等于 星号*
文件名.<或文件名.<<<或文件名.>>>或文件名.>><空文件名

黑名单源码分析

在这里插入图片描述

利用windows环境的叠加特征绕过上传攻击

burpsuite 抓包上传

在这里插入图片描述

修改文件后缀名为s.php:.jpg

在这里插入图片描述

想文件中写入数据

在这里插入图片描述

获取到文件路径

在这里插入图片描述

获取信息

在这里插入图片描述

PHP文件前后对比

在这里插入图片描述
在这里插入图片描述

双写后缀名绕过上传

在上传模块,有的代码会把黑名单的后缀名替换成空,例如 a.php 会把 php 替换 成空,但是可以使用双写绕过例如 asaspp,pphphp,即可绕过上传

文件上传双写绕过漏洞分析

在这里插入图片描述

文件上传双写绕过攻击

抓包上传

在这里插入图片描述

双写后缀名

在这里插入图片描述

成功上传

在这里插入图片描述

访问路径

在这里插入图片描述

成功访问

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值