前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么黑名单<白名单

为什么黑名单<白名单

作者头像
字节脉搏实验室
发布2020-05-12 15:00:28
1.2K0
发布2020-05-12 15:00:28
举报

文章来自【字节脉搏社区】精选 作者-Jaky

通常,在编写负责文件上传的代码时,您会使用“白名单”(当您只能上传具有某些扩展名的文件时)或“黑名单”(当您可以上传任何文件时,检查下载文件的扩展名)不包括在列表中)。

开发人员通常在黑名单中仅包含众所周知的扩展名。在本文中,我不想考虑不广泛使用的文件类型。

为了演示PoC,我使用了以下负载:

*基本的XSS有效负载:

<script>alert(1337)</script>

*基于XML的XSS有效负载:

<a:script xmlns:a="http://www.w3.org/1999/xhtml">alert(1337)</a:script>

下面,我将显示这项小研究的结果。

IIS Web服务器

默认情况下,IIS以文件类型上的text / html内容类型作为响应,其显示在下面的列表中:

基本向量的扩展:

.cer

.hxt

.htm

因此,可以将基本的XSS向量粘贴到上载的文件中,打开文档后,我们将在浏览器中显示一个警告框。下面的列表包括IIS对其进行响应的扩展,其内容类型允许通过基于XML的向量执行XSS。

基于XML的矢量扩展:

.dtd

.mno

.vml

.xsl

.xht

.svg

.xml

.xsd

.xsf

.svgz

.xslt

.wsdl

.xhtml

默认情况下,IIS还支持SSI,但是出于安全原因,禁止执行部分

SSI扩展:

.stm

.shtm

.shtml

有关SSI更详细的信息被写在帖子由@ldionmarcil

此外:

还有另外两个有趣的扩展名(.asmx和.soap),它们可能导致任意代码执行。它是与Yury Aleinov(@YuryAleinov)合作发现的。

Asmx扩展

1、如果您可以上传扩展名为.asmx的文件,则可能导致任意代码执行。例如,我们获取了具有以下内容的文件:

2、然后,我们向发布的文档发送了POST请求:

3、结果,IIS执行了“ calc.exe”

肥皂延伸

具有.soap扩展名的上传文件的内容:

SOAP请求:

Apache(httpd或Tomcat)

基本向量的扩展:

.shtml

.html.de或.html.xxx(xxx-任何字符)*

基于XML的矢量扩展:

.rdf

.xht

.xml

.xsl

.svg

.xhtml

.svgz

*如果扩展名中“ .html。”后面有任何字符,则Apache将以text / html content-type进行响应。

此外:

Apache对大量具有不同扩展名的文件返回不带Content-type标头的响应,这允许XSS攻击,因为浏览器通常决定如何自行处理此页面。本文包含有关此问题的详细信息。例如,扩展名为.xbl和.xml的文件在Firefox中的处理方式类似(如果响应中没有Content-Type标头),因此有可能在此浏览器中使用基于XML的向量来利用XSS。

Nginx的

基本向量的扩展:

.htm

基于XML的矢量扩展:

.svg

.xml

.svgz

扫一扫关注我们:

实验室也即将正式启动,欢迎各位有能力的大师傅、和正在努力向上的兄弟前来入驻,联系下方小Tone

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 字节脉搏实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档