前言 几个月前,本文中的我挖到了一个Twitter的XSS漏洞,同时绕过了站点的内容安全策略(CSP)成功执行了JavaScript代码。将主要分享XSS漏洞挖掘的思路和具体细节,并在文章中也包含了PoC演示视频。 漏洞分析 易受攻击的网站是https://apps.twitter.com。当开发人员创建应用程序时,他可以设置网站信息以提供应用程序和应用程序下载的更详细描述。
经过测试,发现Twitter开发人员在服务器上输入内容的定期验证可能是这样的:([https?])\ w + 细心的同学可能会发现这个正则表达式的开头缺少^字符。当我们输入类似数据:内容#https://.这个网址可以被验证,所以我们已经有一个HTML注入。由于站点的CSP(内容安全策略)的限制,此处注入的HTML代码将无法解析。 检查HTTP标头后,我注意到script-src和object-src块中存在多个CSP(内容安全策略)配置错误。使用这些配置缺陷可能会绕过twitter.com的CSP(内容安全策略)。 CSP的规则如下: 1 Script-src https://connect.facebook.net https://cm.g.doubleclick.net https://ssl.google-analytics.com https://graph.facebook.com https://twitter.com 'unsafe-eval' 'unsafe-inline' https://* .twimg.com https://api.twitter.com https://analytics.twitter.com https://publish.twitter.com https://ton.twitter 。 Com https://syndication.twitter.com https://www.google.com; frame-ancestors 'self'; object-src https://twitter.com https://pbs.twimg.com; default-src 'self'; 看到这个,object-src和script-src块立即引起了我的注意。经过一些分析,我发现了一个受信任域托管的JSONP端点(cdn.syndication.twimg.com又名syndication.twitter.com)。 起初我认为通过使用object-src块(https://pbs.twimg.com)的内容,该站点可以将Flash文件(具有少量字节头的图片/视频扩展)上传到Twitter的CDN服务器并将其嵌入一个嵌入。用于执行代码的嵌入对象。但是,由于用户输入长度的限制,我试图执行的有效负载被截断,因为它太长了,所以这种利用方法最终没有成功。我找到了一个可以在受信任的域下使用的点,并写了一个更短的有效负载。当注入twitter.com时,代码执行并且窗口成功弹出。 1 http://syndication.twitter.com/widgets/timelines/246079887021051904?dnt=true&domain=site.com&lang=en&callback=alert 当我们从服务器请求时,来自syndication.twitter.com主机的JSONP响应头具有Content-Disposition字段,该字段强制将返回的内容作为文件下载。但是,即使Chrome浏览器将返回的内容作为附件下载,由于配置错误导致的“不安全内联”CSP(内容安全策略)阻止意味着我们仍然可以执行代码。 通过设置服务网站(网站)信息如下: 1 Failure when receiving data from the peer 具体方法可以参考这篇文章:PoC 演示视频 本文由乘客安全翻译,作者: 原文链接:http://www.paulosyibelo.com/2017/05/twitter-xss-csp-bypass.html 黑客业务列表介绍和一般分类: 类别:攻击入侵破解开发 1:攻击业务订单:暂时取消所有此类业务订单[仅销售常规IDC流量] 2:入侵业务清单:包括网站源代码,办公系统,黑色系统,教育系统等。 3:破解业务类:软件,加密文件,二次打包,脱壳等。 4:二次开发业务清单:软件二次开发,源代码二次开发等 5:其他业务订单:特洛伊木马[通过所有防病毒],远程控制,特殊软件等 备注:未提及的业务订单可根据主要类别查询或直接联系客户服务。为避免浪费双方时间,请在咨询前阅读:业务交易流程及相关说明 注意:仅接受正式业务,个人无权接受。收集此内容。