文章目录

  • 一:下载与部署
  • 二:通关过程
    • 首页
    • level-01 没有任何机制
    • level-02 双引号闭合标签
    • level-03 单引号闭合标签+html事件
    • level-04 双引号闭合标签+html事件
    • level-05 伪协议
    • level-06 xss变形,大小写绕过
    • level-07 双写绕过
    • level-08 自己试了没有成功,后续再补充

一:下载与部署

xss challenge是个有关反射型xss的测试通关挑战,一共有20关。
下载地址:xss challenge
(访问密码:donMkh)
下载之后解压,把得到的文件夹放在phpstudy的www文件夹下即可

二:通关过程

这个是我自己的通关方法,不一定很准确

首页

level-01 没有任何机制

点击首页图片进入第一关,发现修改name的值,页面的显示也随之改变,这里我们首先直接试试<script>alert(/xss/)<script>,发现直接alert弹窗,过关。
命令:http://10.157.14.169/xss-labs-master/level1.php ?name=<script>alert(/xss/)</script>

level-02 双引号闭合标签

先随便输入,发现跟着变化

然后试试<script>alert(/xss/)</script>,发现输入的内容会被直接显示在页面中,这说明这段JS代码没有起作用,只是当作纯字符给输出到页面了。
右键页面查看源码:

发现尖括号都被转义成&lt和&gt了,导致浏览器无法识别script标签。那我们要想让script生效。怎么办?
由上图可以看出,第一个红框的内容就是input标签内的value值,我们就可以在input标签上做文章,先把input标签用">给闭合掉。
所以http://10.157.14.169/xss-labs-master/level2.php ?keyword="><script>alert(/xss/)</script>

level-03 单引号闭合标签+html事件

进入第三关,发现keyword变成了writing了

我们点击搜索试试看,又变回keyword

我们就直接在hackbar里面修改为?keyword,然后试试?keyword=<script>alert(/xss/)</script>
发现没啥用。
右键打开页面源码,发现无论是h2标签的值,还是input的value值都被转义了,那是不是可以试试第二关的方法用'>闭合input标签呢,试了下发现没用,因为第二关的value值没有被转义。

那现在我们进入xss-labs-master(就是复制到www目录下的)文件夹,找到level3.php文件,打开看看。

发现有一个htmlspecialchars函数。百度一下这个函数。这里我截图下来了。

然后上述level3.php代码.htmlspecialchars($str).这说明,< >都变成了html实体,也就是说,只是一个纯粹的< 和 >字符。并且.htmlspecialchars($str).外部还有双引号包裹,说明还过滤了双引号。
这里我们就可以考虑用html事件,事件的使用可以参考上一节内容。
这里用onmouseover='alert(/xss/)',上面分析得到过滤了双引号,所以单引号
http://10.157.14.169/xss-labs-master/level3.php?keyword='onmouseover='alert(/xss/)'

level-04 双引号闭合标签+html事件

尝试<script>alert(/xss/)</script>发现不行,觉得应该用"><script>alert(/xss/)</script>

发现都被转义了,那我们和上一关一样,考虑事件,这次使用双引号。"onmouseover='alert(/xss/)'

level-05 伪协议

还是一样的,首先尝试<script>alert(/xss/)</script>
发现不行,右键打开网页源码。

发现script被强行改成scr_ipt,参考上一节内容,有点像xss的变形。
我们查看源代码level5.php

发现进行了变形处理。此处只是针对<script>和on,后者表示onmouseover事件也不能用了,因为on会被替换为o_n
这时候,我们可以考虑伪协议,发下a标签没有被使用。
所以"><a href="javascript:alert(/xss/)">click me</a>

level-06 xss变形,大小写绕过

尝试了<script>alert(/xss/)</script>"><script>alert(/xss/)</script>?keyword="onmouseover='alert(/xss/)'均被替换了,如下图

然后http://10.157.14.169/xss-labs-master/level6.php?keyword="<a href="javascript:alert(/xss/)">click me</a>
发现也不行

那么我们考虑XSS变形,比如替换大小写之类的。并且让input标签闭合
?keyword="><a hREf="javascript:alert(/xss/)">click me</a>

这里我们可以查看level6.php源码

发现只做了 分隔字符 的过滤。

level-07 双写绕过

上面的方法都试了,发下on,script,href,src会消失,查看了level07.php源码,发现果然如此:

然后又依次试过了制表符,空格,还有字母转十进制编码,以及十六进制编码,发现都不行。
然后又重新看了下上一节内容的笔记,结合源码中,会把整个关键字(比如script on src data href)给替换为空,那么就可以试试双写绕过。然后就用了如下代码:
<scr<script>ipt>alert(/xss/)</scr<script>ipt>
执行后,发现不成功,然后右键查看页面源码

发现多了一对尖括号,所以直接去掉尖括号,成功闯关
http://10.157.14.169/xss-labs-master/level7.php?keyword="><scrscriptipt>alert(/xss/)</scrscriptipt>

level-08 自己试了没有成功,后续再补充

没有解决,没看懂,网上也有大佬解出来了,但是我直接复制过来,我这边都弄不出来。不知道什么问题导致的?
这是level8.php源码:

<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()
{
confirm("完成的不错!");window.location.href="level9.php?keyword=not bad!";
}
</script>
<title>欢迎来到level8</title>
</head>
<body>
<h1 align=center>欢迎来到level8</h1>
<?php
ini_set("display_errors", 0);
$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);
echo '<center>
<form action=level8.php method=GET>
<input name=keyword  value="'.htmlspecialchars($str).'">
<input type=submit name=submit value=添加友情链接 />
</form>
</center>';
?>
<?phpecho '<center><BR><a href="'.$str7.'">友情链接</a></center>';
?>
<center><img src=level8.jpg></center>
<?php
echo "<h3 align=center>payload的长度:".strlen($str7)."</h3>";
?>
</body>
</html>

从上述源码中可以看出大小写,双引号,也过滤了,前面关,用过的也都不起作用。
看到有个a标签,我们可以考虑伪协议 + 字符编码。
先不编码:payload:javascript:alert(/xss/)

发现ri替换为r_i,
接下来考虑字符编码

这里有个字符实体转码的网站:点我

所以我们可以构造payload:?keyword=javascript:alert(/xss/)


页面代码:

我没成功,但是别人的可以,不知道为啥了?????????????
网上的成功图:

--------------可以先用取巧的方法跳过这一关,进入下一关-------------

暂且到第八关,占个文章发布的位置,后续补上。

050 XSS通关小游戏——xss challenge相关推荐

  1. Unity 2D横版通关 小游戏——幻城探险 C#

    Unity 2D横版通关 小游戏 C#  分辨率 1920*1980 点击这里下载项目工程 本项目,为个人练习demo,美术资源原创自合作美工. 本项目涉及到的功能: 1.UI:开始游戏按钮,游戏帮助 ...

  2. natas通关小游戏(未完待续)

    地址:http://overthewire.org/wargames/natas/ level 0 -> level 1 You can find the password for the ne ...

  3. Xss小游戏通关攻略带解释

    Xss小游戏通关攻略 实验环境:xss小游戏源码+phpstudy 源码地址:https://files.cnblogs.com/files/Eleven-Liu/xss%E7%BB%83%E4%B9 ...

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

    这是一个在线靶场-xss小游戏通关,一共6关.链接地址: XSS game (xss-game.appspot.com)https://xss-game.appspot.com/登陆成功后,页面如下. ...

  5. XSS小游戏通关题解

    写这篇文章的目的 以前在学习和利用XSS漏洞的时候,最多的感受就是知识体系不够全面,不能快速准确的构造出payload,最近在整理xss漏洞利用的一些方法,一来希望自己能够准确快速的针对漏洞点构造出p ...

  6. xss靶场练习(二)之xss小游戏

    前言 话说自从网络安全修正法推出,  不敢轻易动国内的网站,  平时就打打靶场,  本文记录练习之路. xss小游戏在线地址:  http://test.ctf8.com/ xss小游戏一共二十关. ...

  7. h5小游戏在线玩:万圣节互动游戏《逃离禁闭岛》通关完全攻略

    最近有好多玩家跟我私信留言,让TOM游戏小编快点分享下H5密室逃脱游戏<逃离禁闭岛>的攻略,小编通过整晚的努力终于玩通关了,说实话还是蛮烧脑的,让我体验了一次别样的穿越之旅,话不多说,这就 ...

  8. 从python入门开始,玩这个炸弹超人小游戏,打通关就可以掌握编程

    还记得那个街机游戏炸弹超人吗? 现在用python可以直接开发出一个这样的炸弹超人小游戏,并且非常简单,跟着详细教程学,再加上所有的源码,你就不仅能开发出一个这样的python小游戏,还可以在开发游戏 ...

  9. 10个python入门小游戏,零基础打通关,就能掌握编程基础

    前言 不会python就不能用python开发入门级的小游戏? 当然不是,我收集了十个python入门小游戏的源码和教程,并且即使你没有python基础,只要跟着这十个小游戏的开发详细教程去做,以及有 ...

最新文章

  1. 如何 SQL Server 2005 实例之间传输登录和密码
  2. Mysql INSERT、REPLACE、UPDATE的区别
  3. FastReport 导出pdf时中文乱码的解决办法
  4. 深交所互动平台_怡达股份股价涨跌幅偏离大盘,深交所:啥原因?
  5. CCSpriteBatchNode的使用
  6. 特朗普回应“蒂姆·苹果”事件:就是为节省时间
  7. 安装m2eclipse插件
  8. 春节期间的学习小目标
  9. tkmybatis能连接oracle吗,《放弃Mybatis使用tkMybatis》
  10. cdr添加节点快捷键_coreldraw合并快捷键是什么,CDR合并快捷键是什么?
  11. 生物统计分析之主成分分析(PCA)
  12. ODL(C版本)安装过程
  13. Windows平台上使用Qt(MinGW)调用基于VS编写的周立功CAN卡Dll文件
  14. python-opencv去除小面积区域/孔洞填充(二值图像)
  15. linux加密压缩文件gpg,linux文件--GPG 加密解密
  16. 什么是MEID号如何申请MEID,A0、A1、A2以及99开头的MEID号的区别?
  17. 互联网的SEDA高并发架构
  18. 推荐一个java技术文章公众号
  19. “System.NullReferenceException:未将对象引用设置到对象的实例“解 析 引用他人文章
  20. 2020年云计算全国职业院校技能大赛(高职组)--容器云(1+x)商城系统部署

热门文章

  1. 推荐七个略火的 SpringBoot+Vue 项目
  2. Android短信数据库简析
  3. UE4 材质学习 (01-第一个材质)
  4. 智慧屏与普通屏幕有何区别?
  5. 盘点2021款iPad Pro 5个增强功能,与上一代有什么区别?
  6. DB buffer bussy wait 分析一例
  7. Kaggle ICML2013 fer2013人脸表情识别/面部表情识别:训练、调优、调试与踩坑
  8. Java poi 导出excel 设置将整个工作表打印在一页 打印机设置
  9. 好用的SQL工具盘点:从学习到工作总有一款适合你
  10. 简单记账本-android版