查看关键代码:

  1. <?php
  2. ini_set("display_errors", 0);
  3. $str = $_GET["keyword"];
  4. $str00 = $_GET["t_sort"];
  5. $str11=$_SERVER['HTTP_REFERER'];
  6. $str22=str_replace(">","",$str11);
  7. $str33=str_replace("<","",$str22);
  8. echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
  9. <form id=search>
  10. <input name="t_link" value="'.'" type="hidden">
  11. <input name="t_history" value="'.'" type="hidden">
  12. <input name="t_sort" value="'.htmlspecialchars($str00).'" type="hidden">
  13. <input name="t_ref" value="'.$str33.'" type="hidden">
  14. </form>
  15. </center>';
  16. ?>

可以看到有三个参数是我们可以控制的

  1. <?php
  2. ini_set("display_errors", 0);
  3. $str = $_GET["keyword"];
  4. $str00 = $_GET["t_sort"];
  5. $str11=$_SERVER['HTTP_REFERER'];

前两个参数都使用 htmlspecialchars 进行了过滤,最后一个参数只进行了尖括号的替换,又回到了第十题,不过参数变成了 HTTP 请求头中的 HTTP_REFERER

抓包修改,然后将第十关的payload放进去即可,如图:

发包后点击输入框,成功XSS

十二关也是考察HTTP请求包结构的

关键代码为:

  1. <?php
  2. $str11=$_SERVER['HTTP_USER_AGENT'];
  3. $str22=str_replace(">","",$str11);
  4. $str33=str_replace("<","",$str22);
  5. echo '<input name="t_ua" value="'.$str33.'" type="hidden">'
  6. ?>

将 user-agent 改为 第十关的 payload,如图:

抓包修改请求点击一气呵成

进入十三关

关键代码为:

  1. <?php
  2. setcookie("user", "call me maybe?", time()+3600);
  3. $str11=$_COOKIE["user"];
  4. $str22=str_replace(">","",$str11);
  5. $str33=str_replace("<","",$str22);
  6. echo '<input name="t_cook" value="'.$str33.'" type="hidden">'
  7. ?>

与前两关类似,修改cookie中的user值即可

继续一气呵成

进入十四关

关键代码如下:

  1. <center><iframe name="leftframe" marginwidth=10 marginheight=10 src="http://www.exifviewer.org/" frameborder=no width="80%" scrolling="no" height=80%></iframe></center><center>这关成功后不会自动跳转。成功者<a href=/xss/level15.php?src=1.gif>点我进level15</a></center>

环境有问题,考点是图片EXIF构造XSS

shy师傅对此类XSS复现的链接:https://blog.csdn.net/qq_32393893/article/details/104814749

第十五关

关键代码为:

  1. <head>
  2. <meta charset="utf-8">
  3. <script src="angular.min.js"></script>
  4. <script>
  5. <?php
  6. ini_set("display_errors", 0);
  7. $str = $_GET["src"];
  8. echo '<body><span class="ng-include:'.htmlspecialchars($str).'"></span></body>';
  9. ?>

可以看到这里包含了:

  1. <script src="angular.min.js"></script> 

而对其 ng-include,有:

所以我们可以用来包含一个存在XSS漏洞的HTML界面,同一域名也很容易满足,因为XSS-labs都在同一域名下。

因为使用了htmlspecialchars函数过滤,所以我们不考虑使用尖括号等敏感字符。

使用level4.php的界面,payload为:

  1. level15.php?src='level4.php?keyword=" onclick=alert(1) "'

可以看到第四关的界面被包含了进来

点击搜索框XSS

参考链接:

https://0verwatch.top/xss-game.html

XSS挑战赛(3)的更多相关文章

  1. 某xss挑战赛闯关笔记

    0x0 前言 在sec-news发现先知上师傅monika发了一个xss挑战赛的闯关wp([巨人肩膀上的矮子]XSS挑战之旅---游戏通关攻略(更新至18关)https://xianzhi.aliyu ...

  2. xss挑战赛小记 0x02(prompt(1))

    0x0O 上次搜xss挑战赛的时候 还找到了一个看上去难度更高的挑战赛 今天做了一下 学到了很多新东西 这个挑战赛能够在页面成功prompt(1)就算过关了 挑战地址 http://prompt.ml ...

  3. xss挑战赛小记 0x01(xsstest)

    0x00 今天在先知社区看到了一个xss挑战赛 结果发现比赛已经结束 服务器也关了 百度找了个xss挑战赛来玩一下 正好印证下xss的学习--- 地址     http://test.xss.tv/ ...

  4. xss挑战赛小记 0x03(xssgame)

    0x00 继续做xss吧 这次是xssgame 地址 http://www.xssgame.com/ 一共八关 学到了很多东西 0x01 啥也没有 <svg/onload="alert ...

  5. XSS挑战赛(4)

    16-20关 第十六关 关键代码为: <?php ini_set("display_errors", 0); $str = strtolower($_GET["ke ...

  6. XSS挑战赛(2)

    进入第六关 简单判断过滤情况 <>script"'/ 查看源代码 可以看到第二个红框部分跟之前类似,闭合双引号尝试进行弹窗 "><script>ale ...

  7. XSS挑战赛(1)

    以前囫囵吞枣做过一遍,现在从头再来 第一关网址为:http://127.0.0.1/xss-labs-master/level1.php?name=test 而页面上显示了用户test,name可控, ...

  8. 先知xss挑战赛学习笔记

    xss游戏 游戏地址:http://ec2-13-58-146-2.us-east-2.compute.amazonaws.com/ LEMON参考wp地址 1. 文件上传 源码如下 <?php ...

  9. web全套资料 干货满满 各种文章详解

    sql注入l MySqlMySQL False注入及技巧总结MySQL 注入攻击与防御sql注入学习总结SQL注入防御与绕过的几种姿势MySQL偏门技巧mysql注入可报错时爆表名.字段名.库名高级S ...

随机推荐

  1. vue实现带logo的二维码/商品条形码/打印商品吊牌

    一.带logo的二维码 1.安装 npm install vue-qr --save 2.在页面或组件中使用 <template> <div id="qrcode" ...

  2. 针对DEV XtraReport中没有radiobuttonlist的替代方法

     private void PrintingSystem_EditingFieldChanged(object sender, DevExpress.XtraPrinting.EditingField ...

  3. 异步FIFO学习笔记

  4. 一:JavaWeb

    1.javaWeb技术体系 2.HTMl 超文本标记语言 (超文本的意思就是除了可以包含文字之外,还可以包含图片链接音乐视频等...) 2.1 HTML网页的组成  (结构:HTML 表现:CSS 行 ...

  5. 解密Cookie,这一篇就够了

    一.Cookie介绍 因为HTTP协议是无状态的,每次请求都是独立的,服务器端无法判断两次请求是否来自同一个用户,进而也就无法判断用户的登录状态,也不知道用户上一次做了什么.所以Cookie就是用来绕 ...

  6. 删除osd的正确方式

    在ceph的集群当中关于节点的替换的问题,一直按照以前的方式进行的处理,处理的步骤如下: 停止osd进程 /etc/init.d/ceph stop osd.0 这一步是停止osd的进程,让其他的os ...

  7. CSS 背景常用属性

    CSS 背景常用属性 background-color 这个属性过于简单, 以下写法均可 background-color:red; background-color:rgb(0,0,255); ba ...

  8. EOF和scanf函数

    EOF和scanf函数 scanf函数的返回值 scanf函数返回成功读入的数据项数,读入数据时遇到了"文件结束(end of file)"或者错误则返回EOF,EOF定义为int ...

  9. 基于 abp vNext 微服务开发的敏捷应用构建平台 - 框架分析

    总体架构     本平台从技术上采用ABP vNext和.NET Core编写的微服务架构.客户端层主要以现代浏览器为主,适配了PC端和移动端的访问,采用API和应用程序进行交互,同时提供第三方使用的 ...

  10. 打乱Map key - value的对应顺序

    应用场景:对于考试试卷选择题选项的乱序对应问题,防止考生作弊,每个人的题目都是不一样的选项顺序. package com.muyuan.platform.elearning.util; import ...