缓存XSS漏洞分析

2019年9月29日08:00:05 发表评论

缓存XSS漏洞分析

简介

缓存XSS漏洞即为通过利用CDN of WAF缓存记录使被攻击者接受到存在XSS payload的缓存文件。
通常这些服务充当流量负载平衡和反向代理,并储存经常检索的文件,以此减少Web服务器的延迟。

工具介绍

本文中利用缓存Xss漏洞所使用的是curl,在开始之前我先简单介绍一下curl及使用方法。

curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。对于网页处理流程和数据检索自动化,curl有很强的处理能力。

文中使用的命令:

-iH
-i/–include 输出时包括protocol头信息
-H/–header 自定义头信息传递给服务器

使用方法:

curl -iH "你想包含的header信息" 目标地址

利用方法

文中使用的程序,代码为:

echo json_encode(getallheaders());//php7.3才可正常运行或者可以使用已经搭好的靶场:Header Xss

正常的响应:

curl -iH "test:<svg onload=alert(xss)>" https://brutelogic.com.br/lab/header.php?xxx(此处自己修改)

可以看见x-sucuri-cache值为MISS,多发送几次payload直到x-sucuri-cache变为HIT。验证是否成功缓存(响应中存在payload即为缓存成功):

curl -i https://brutelogic.com.br/lab/header.php?同上

使用浏览器访问(图是朋友夕颜的,所以地址不一致不用管。

后话

目前只是简单的复现了一下,对该漏洞的影响范围并不是很清楚。根据cdn缓存的工作原理,这个漏洞应该是可以影响到所以访问这个页面的用户,但是该靶场复现时却只能在本机成功,不清楚是靶场的设置还是cdn缓存本来就是这样。

发表评论

后发表评论