后面翻译的好乱,没检查吗?和原文差了好多
Google Bugbounty:点击劫持之DOM型XSS
原文链接:https://appio.dev/vulns/clickjacking-xss-on-google-org/
一个鲜为人知的谷歌项目:谷歌危机地图,它的主要任务是帮助人们查找和使用关键的紧急信息。
虽然它一直未被Google关闭,但是这个项目很少有人会使用它。
由于它是一个较旧的项目(创建于2012年)并且不经常更新,因此它是寻找漏洞的一个很好的目标。
它托管在google.org域名,虽然,该域名的严重程度不如google.com(针对客户端漏洞),但它仍然是Google拥有的域名。
登录
如果你去项目主页,你将会被重定向到地图的默认页面:“天气和事件”,这个对我们并没有大多用处,因为我们唯一能做的就是查看地图。
有一种方法可以管理和创建新地图。如果我们在URL的末尾添加.maps,则可以访问它:google.org/crisismap/.maps
打开此页面后,你需要使用自己的Google帐户登录才能继续。现在你应该看到一个带有地图列表的仪表板,每个帐户都有三个默认地图。
出于某种原因,如果你在自己的账户上发布一个地图,则每个人都会在“已发布地图”字段下的仪表板中看到该地图
创建地图
当你单击红色的“创建地图”按钮,你很可能会看到一条消息,指出gmail.com域不能用于创建新地图。
这意味着我们需要使用包含我们自定义的电子邮件登录。我们可以通过使用GSuite帐户或使用gmail.com以外的电子邮件登录来执行创建一个新地图的操作。
单击“继续”按钮后,我们将被重定向到我们可以编辑新创建的地图的页面。
发现XSS
首先,我们将向地图添加一个新图层。
将弹出用于创建新图层的对话框。
我们可以在对话框中输入任何内容作为“标题”,现在,如果我们在“Source URL”字段中输入javascript:alert(document.domain)
,将会出现错误。
无效的网址 - 请包含协议(例如:http://或者https://)
这意味着,它要求你在保存新图层之前检查URL是否有效。验证URL经过反混淆的JavaScript代码如下所示:
1. if (url && !url.toLowerCase().match("^\\s*(http://|https://|docs://|$)")) {
1. showError("Invalid URL - please include a protocol (e.g. http:// or https://)");