首页 » PHP教程 » xss应用php文件技巧_技能分享若何运用文件上传实行XSS

xss应用php文件技巧_技能分享若何运用文件上传实行XSS

访客 2024-12-12 0

扫一扫用手机浏览

文章目录 [+]

1) 文件名

文件名本身可能便是网页的一部分可以造成反射,以是可以通过将 XSS 语句插入文件名中来触发反射。

xss应用php文件技巧_技能分享若何运用文件上传实行XSS

只管不是故意为之,但是这个 XSS 可以实践在http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_fileupload_value。

xss应用php文件技巧_技能分享若何运用文件上传实行XSS
(图片来自网络侵删)

2) 元数据

利用 exiftool(http://www.sno.phy.queensu.ca/~phil/exiftool/) 工具可以修正 EXIF 元数据,从而在某些地方造成反射:

$ exiftool -FIELD=XSS FILE

例子:

$ exiftool -Artist=’ “><img src=1 onerror=alert(document.domain)>’ brute.jpeg

3) 内容

如果 Web 运用许可上传 SVG(一种图像类型)扩展名,则以下内容可以用来触发 XSS:

<svg xmlns=\公众http://www.w3.org/2000/svg\"大众 onload=\"大众alert(document.domain)\"大众/>

一个 POC 可以在这里看到 brutelogic.com.br/poc.svg。

4)源码

我们可以很随意马虎的创建一张包含 javascript payload 的 GIF 图片,然后将这张图片当做源码加以引用。
如果我们可以成功的注入相同的域名,如下所示,则这样可以有效的帮我们绕过 CSP(内容安全策略)防护(其不许可实行例如<script>alert(1)</script>

创建这样一张图片可以利用如下内容并将文件命名为 .gif 后缀:

GIF89a/<svg/onload=alert(1)>/=alert(document.domain)//;

GIF 文件标识 GIF89a 做为一个 javascript 的变量分配给 alert 函数。
中间注释部分的 XSS 是为了以防图像被检索为 text/HTML MIME 类型时,通过要求文件来实行 payload。

我们通过下图可以创造,类 UNIX 命令的 PHP 函数 exif_imagetype() 和 getimagesize() 都会将这个文件识别为 GIF 文件。
而一样平常的 Web 运用都是利用这些函数来验证图像类型的,以是这样一个文件是可以被上传的(但上传后可能会被杀毒软件查杀)。

更多可以用作 javascript 变量赋值的 ASCII 文件类型标识符,请拜会https://en.wikipedia.org/wiki/List_of_file_signatures 。

更多关于文件上传 XSS 的详尽示例,包括绕过像 GD 库等过滤的例子,请拜会https://github.com/d0lph1n98/Defeating-PHP-GD-imagecreatefro.gif 。

转自FreeBuf黑客与极客(FreeBuf.COM),黑客迷修正发布!

标签:

相关文章