700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php 绕过扩展名检查 文件上传漏洞---后缀名绕过原理

php 绕过扩展名检查 文件上传漏洞---后缀名绕过原理

时间:2022-12-17 17:07:39

相关推荐

php 绕过扩展名检查 文件上传漏洞---后缀名绕过原理

0x00 前言

今天来讨论文件上传漏洞之后缀名绕过。通常在实际生产过程中,并不会有直接可以上传.php等明显的可直接执行的文件,所以在这里我记录下后缀名绕过的原理和方法。

0x01 绕过方法

首先准备三个文件后缀名分别为.php .php3 .php30 如图:

上传.php的情况下发现,有了黑名单检验,不能上传.php结尾的文件,这是大部分实际情况下会遇到的问题。

但是当我们把.php3和.php30上传时发现都能成功上传,但是发现.php30的文件访问时直接将文件内容以字符显示了出来,所以.php30不能用于后缀名绕过.php3可以。

通过菜刀检验发现.php3可以获取后台目录

0x02 原理

部分服务仅根据后缀、上传时的信息或Magic Header来判断文件类型,此时可以绕过。以Apache为例 会通过通过后缀名判断使用哪种解析器

在apache的配置文件中有这么一段代码

可以看到如果后缀名是.php .php3 4 5 .pht phtml 等 都是指向php解析器的 可以通过这些后缀名绕过后缀名检验

0x03 部分语言可选绕过后缀名

php由于历史原因,部分解释器可能支持符合正则 /ph(p[2-7]?|t(ml)?)/ 的后缀,如 php / php5 / pht / phtml / shtml / pwml / phtm 等 可在禁止上传php文件时测试该类型。

jsp引擎则可能会解析 jspx / jspf / jspa / jsw / jsv / jtml 等后缀,asp支持 asa / asax / cer / cdx / aspx / ascx / ashx / asmx / asp{80-90} 等后缀。

除了这些绕过,其他的后缀同样可能带来问题,如 vbs / asis / sh / reg / cgi / exe / dll / com / bat / pl / cfc / cfm / ini 等。

0x04 防范措施

使用白名单限制上传文件的类型

使用更严格的文件类型检查方式

0x05 END

以上就是后缀名绕过的知识原理了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。