在渗透测试期间,每当我看到目标测试站点的上传功能时,它总会引起我的好奇心。如果幸运的话,如果目标网站服务器是PHP或ASP架构,并且上传功能没有后缀,这将导致能够直接上传退回脚本以进行...

在
渗透测试期间,每当我看到目标测试站点的上传功能时,它总会引起我的好奇心。如果幸运的话,如果目标网站服务器是PHP或ASP架构,并且上传功能没有后缀,这将导致能够直接上传退回脚本以进行表单控制。如果这个技巧不起作用,我将尝试上传一个HTML页面来触发我自己的一组客户端javascript脚本以形成XSS攻击。在本文中,我将分享一个上传docx文件以形成存储XSS漏洞的示例。
测试上传功能
在网络测试工作中,我发现目标网站上传功能可以上传未经授权用户的文件。上传功能允许用户上传.docx文件:

上传此.docx文件后也可以下载。相比之下,上传的文件uploaded.docx与服务器上相应的可下载文件downloaded.docx之间存在差异。也就是说,文件上传成功后,服务器会在提供下载之前上传文件。做一些处理,然后提供下载。

要上载的文件必须是有效的.docx文件。对于基于浏览器的解析,可以将其转换为html格式以供显示。我可以更改这个后缀吗?因此,让我尝试在POST请求中将.docx后缀更改为.html,并查看:

上传.html文件后,在从服务器请求文件后,服务器将其Content-Type标头默认为text/html,以便浏览器将文件解析为HTML:

插入XSS Payload
通过这种方式,我想到将XSS Payload捆绑到.docx压缩文件中,如下所示。由于这是直接将后缀更改为.zip压缩格式包的.docx示例,因此我需要确定在上载或Web解析期间不会转储的某些区域。最后,我发现了这个docx zip压缩包中的一些文件路径将保持不变。如下所示,我在Settings.xml文件名中添加了一长串字母,以区分它们。在

之后,将zip格式后缀恢复为docx格式,使用UItraEdit查看十六进制代码,然后覆盖原始区域中的一些字节,插入我自己的JavaScript XSS代码:

上传时,服务器可以正常接收此构造的.docx文件。在HTTP POST过程中,我将其后缀更改为.html后缀以进行最终上载:

从服务器请求此文件时,服务器可以解析该文件。 HTML文件包含完整的先前插入的XSS Payload代码:

当然,在浏览器解析后,它可以成功执行插入的XSS Payload:

为了混淆这种XSS攻击,攻击者可以添加一个隐藏的iframe框架,其中包含一个URI统一资源标识符可能会使受害者感到困惑,如下所示:

保护措施
这种影响应该受到开发人员的以下手段的限制。
在上传文件之前,请在服务器端验证上传的文件格式是.doc还是.docx有效格式;
Content-Type标头受到严格限制。已更改Content-Type标头或特定后缀格式的上载文件必须与上载的文件保持相同的Content-Type标头信息。
要在下载文件时控制其他操作,请添加响应标头:“Content-Disposition: attachment”以防止文件嵌入到浏览器中。
过滤掉包含HTML标记的所有上传文件,因为docx可以篡改其包含的HTML文件。
*参考来源:coalfire,FreeBuf小编云编译
黑客业务列表介绍和一般分类:
类别:攻击入侵破解开发
1:攻击业务订单:暂时取消所有此类业务订单[仅销售常规IDC流量]
2:入侵业务清单:包括网站源代码,办公系统,黑色系统,教育系统等。
3:破解业务类:软件,加密文件,二次打包,脱壳等。
4:二次开发业务清单:软件二次开发,源代码二次开发等
5:其他业务订单:特洛伊木马[通过所有防病毒],远程控制,特殊软件等
备注:未提及的业务订单可根据主要类别查询或直接联系客户服务。为避免浪费双方时间,请在咨询前阅读:业务交易流程及相关说明
注意:仅接受正式业务,个人无权接受。收集此内容。