# XSS姿势——文件上传XSS
原文链接:[http://brutelogic.com.br/blog/](http://brutelogic.com.br/blog/)
0x01 简单介绍
=========
* * *
一个文件上传点是执行XSS应用程序的绝佳机会。很多网站都有用户权限上传个人资料图片的上传点,你有很多机会找到相关漏洞。如果碰巧是一个self XSS,你可以看看这篇文章。
0x02 实例分析
=========
* * *
首先基本上我们都可以找到类似下面的一个攻击入口点,我觉得这个并不难。
### 姿势一:文件名方式
文件名本身可能会反映在页面所以一个带有XSS命名的文件便可以起到攻击作用。

虽然我没有准备靶场,但是你可以选择在[W3Schools](http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_fileupload_value)练习这种XSS 。
### 姿势二:Metadata
使用[exiftool](http://www.sno.phy.queensu.ca/~phil/exiftool/)这个工具可以通过改变EXIF metadata进而一定几率引起某处反射:
```
$ exiftool -field = XSS FILE
```
例如:
```
$ exiftool -Artist=’ “>
’ brute.jpeg
```

### 姿势三:Content
如果应用允许上传SVG格式的文件(其实就是一个图像类型的),那么带有以下content的文件可以被用来触发XSS:
```
```
一个 PoC用来验证。你可以通过访问brutelogic.com.br/poc.svg看到效果
### 姿势四:Source
建立一个携带有JavaScript payload的GIF图像用作一个脚本的源。这对绕过CSP(内容安全策略)保护“script-src ‘self’”(即不允许使用示例的这种xss方式进行攻击``)是很有用的,但前提是我们能够成功地在相同的域注入,如下所示。

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