一种绕过 CSP 在 Twitter 子站中执行 XSS 的攻击

简介: 本文讲的是一种绕过 CSP 在 Twitter 子站中执行 XSS 的攻击,现在就开始讲述发现这一漏洞的过程,首先我对twitter进行了子域名收集,发现了https://careers.twitter.com这一网站,你可以在这一网站上向twitter投简历,找工作,不过我在这个网站寻找漏洞~
本文讲的是 一种绕过 CSP 在 Twitter 子站中执行 XSS 的攻击现在就开始讲述发现这一漏洞的过程,首先我对twitter进行了子域名收集,发现了https://careers.twitter.com这一网站,你可以在这一网站上向twitter投简历,找工作,不过我在这个网站寻找漏洞~

在测试了一段时间之后,我想我在URL中的location参数中找到了一个反射型的xss漏洞:

https://careers.twitter.com/en/jobs-search.html?location=1" onmouseover=”alert(1)&q=1&start=70&team=

一种绕过 CSP 在 Twitter 子站中执行 XSS 的攻击

但是它并没有弹框,我以为不能使用这一参数对xss进行触发,后来发现这里使用了CSP,如下:

content-security-policy: default-src ‘self’ ; 
connect-src ‘self’ ;
font-src ‘self’ https://*.twimg.com https://*.twitter.com data:; frame-src ‘self’ https://twitter.com https://*.twitter.com [REDACTED] https://*.twitter.com; 
report-uri https://twitter.com/i/csp_report

CSP阻止了弹框的进行,所以很不幸,我需要在CSP这一方面下下工夫。然后我询问了XSS方面的大牛 @brutelogic,跟他说了一下我目前碰到的情况,他告诉我想办法去绕过CSP,然后再进行XSS攻击。

我尝试了很多方法,在将要放弃的时候,我发现了在get请求当中还存在一个比较隐蔽的URL:

https://analytics.twitter.com/tpm?tpm_cb=

这一页面返回头部的Content-type是application/javascript,于是我将tpm_cb参数中写入xss代码,他会在页面上显示:

一种绕过 CSP 在 Twitter 子站中执行 XSS 的攻击

真的是太幸运了,然后我就将这两个漏洞结合起来,xss就进行执行了,所以我构造了如下的payload:

https://careers.twitter.com/en/jobs-search.html?location=1"><script src=//analytics.twitter.com/tpm?tpm_cb=alert(document.domain)>//

可以看到,已经弹框了~

一种绕过 CSP 在 Twitter 子站中执行 XSS 的攻击

在发现漏洞之后,立刻将漏洞提交到了hackerone,很快对我提交的漏洞进行分类和奖励,同时twitter团队也很快修复了xss漏洞,不过CSP绕过漏洞花的时间略长,但是到最后双方都很满意。感谢twitter安全团队以及hackerone社区。




原文发布时间为:2017年7月8日
本文作者:xnianq
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
1月前
|
JavaScript 安全 前端开发
同源策略如何防止 XSS 攻击?
【10月更文挑战第31天】同源策略通过对 DOM 访问、Cookie 访问、脚本执行环境和跨源网络请求等多方面的严格限制,构建了一道坚实的安全防线,有效地防止了 XSS 攻击,保护了用户在网络浏览过程中的数据安全和隐私。
99 49
|
5月前
|
存储 安全 JavaScript
手摸手带你进行XSS攻击与防御
当谈到网络安全和信息安全时,跨站脚本攻击(XSS)是一个不可忽视的威胁。现在大家使用邮箱进行用户认证比较多,如果黑客利用XSS攻陷了用户的邮箱,拿到了cookie那么就可以冒充你进行收发邮件,那真就太可怕了,通过邮箱验证进行其他各种网站的登录与高危操作。 那么今天,本文将带大家深入了解XSS攻击与对应的防御措施。
|
1月前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
91 4
|
1月前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
71 2
|
1月前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
94 3
|
1月前
|
SQL 存储 安全
什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
理解并防范XSS、SQL注入和CSRF攻击是Web应用安全的基础。通过采用严格的输入验证、使用安全编码实践以及实现适当的身份验证和授权机制,可以有效防止这些常见的Web攻击,保障应用程序和用户的数据安全。
40 0
|
3月前
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
566 1
|
2月前
|
存储 JavaScript 安全
|
2月前
|
存储 JavaScript 前端开发
Xss跨站脚本攻击(Cross Site Script)
Xss跨站脚本攻击(Cross Site Script)
|
5月前
|
SQL 安全 数据库
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
【7月更文挑战第26天】在 Python Web 开发中, 安全性至关重要。本文聚焦 SQL 注入、XSS 和 CSRF 这三大安全威胁,提供实战防御策略。SQL 注入可通过参数化查询和 ORM 框架来防范;XSS 则需 HTML 转义用户输入与实施 CSP;CSRF 防御依赖 CSRF 令牌和双重提交 Cookie。掌握这些技巧,能有效加固 Web 应用的安全防线。安全是持续的过程,需贯穿开发始终。
98 1
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!