博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XSS姿势——文件上传XSS
阅读量:6625 次
发布时间:2019-06-25

本文共 1167 字,大约阅读时间需要 3 分钟。

Zeroyu · 2016/04/15 10:14

原文链接:

0x01 简单介绍


一个文件上传点是执行XSS应用程序的绝佳机会。很多网站都有用户权限上传个人资料图片的上传点,你有很多机会找到相关漏洞。如果碰巧是一个self XSS,你可以看看这篇文章。

0x02 实例分析


首先基本上我们都可以找到类似下面的一个攻击入口点,我觉得这个并不难。

姿势一:文件名方式

文件名本身可能会反映在页面所以一个带有XSS命名的文件便可以起到攻击作用。

虽然我没有准备靶场,但是你可以选择在练习这种XSS 。

姿势二:Metadata

使用这个工具可以通过改变EXIF  metadata进而一定几率引起某处反射:

#!bash$ exiftool -field = XSS FILE复制代码

例如:

#!bash$ exiftool -Artist=’ “>’ brute.jpeg复制代码

姿势三:Content

如果应用允许上传SVG格式的文件(其实就是一个图像类型的),那么带有以下content的文件可以被用来触发XSS:

#!html
复制代码

一个 PoC用来验证。你可以通过访问brutelogic.com.br/poc.svg看到效果

姿势四:Source

建立一个携带有JavaScript payload的GIF图像用作一个脚本的源。这对绕过CSP(内容安全策略)保护“script-src ‘self’”(即不允许使用示例的这种xss方式进行攻击<script>alert(1)</script>)是很有用的,但前提是我们能够成功地在相同的域注入,如下所示。

要创建这样的图像需要这个作为content 和 name,并使用.gif扩展名:

#!htmlGIF89a/*
*/=alert(document.domain)//;复制代码

这个GIF的图片头——GIF89a,作为alert function的变量分配给alert function。但是他们之间,还有一个被标注的XSS变量用来防止图片被恢复为text/HTML MIME文件类型,因此只需发送一个对这个文件的请求payload 就可以被执行。

正如我们下面看到的,文件类unix命令和PHP函数中的exif_imagetype()和getimagesize()会将其识别为一个GIF文件。所以如果一个应用程序仅仅是使用这些方式验证是否是一个图像,那么该文件将可以上传成功(但可能在上传后被杀掉)。

0x03 最后


如果你想知道更多的有其标志性ASCII字符可以用于一个javascript变量赋值的文件类型,看我随后的文章。

也有很多比较详细的使用XSS和图像文件相结合绕过图形处理函数库过滤的例子。这方面的一个很好的例子是

转载地址:http://nntpo.baihongyu.com/

你可能感兴趣的文章
zabbix之Web网络监控
查看>>
微软SQL Server 2012新特性Silverlight报表客户端 - Power View
查看>>
CentOS 6.2利用drbd+pacemaker实现redis高可用
查看>>
网络安全系列之四十六 在IIS6中配置目录安全性
查看>>
RedHat 5.4 日志服务器学习笔记
查看>>
实例学习SSIS(二)-- 使用迭代
查看>>
自动加入域脚本
查看>>
我的程序人生--语言学习之路
查看>>
inotify+rsync+mutt+msmtp 实现linux文件或者目录自动更新并且实现发邮件给管理员
查看>>
iphone开发之获取系统背光灯亮度
查看>>
Windows Server入门系列40 网络共享权限设置
查看>>
Provisioning Services 7.8 入门系列教程之十四 UEFI支持和BOOTPTAB 编辑器
查看>>
linux-dhcp
查看>>
Java中的"goto"实现
查看>>
(运维)VMware-vCenter-Server-Appliance-5.0安装与部署
查看>>
支持二次开发的Zigbee模块(SNAP技术)
查看>>
[IE技巧] IE 中打开Office文件的设置
查看>>
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...
查看>>
MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
查看>>
Exchange 2010安装各角色先决条件的Powershell
查看>>