0x0 前言

在sec-news发现先知上师傅monika发了一个xss挑战赛的闯关wp([巨人肩膀上的矮子]XSS挑战之旅---游戏通关攻略(更新至18关)https://xianzhi.aliyun.com/forum/read/1462.html),去看了一下发现是前几天刚发现的平台,看了一下那个绕狗教程感觉挺不错的,xss却没有玩,那么正巧就玩一下,顺便学习一波别的师傅的思路。

http://xss.tv

闯关地址:http://test.xss.tv

自己做了一些,也看了一下先知monika师傅的wp,参考了几道题。做到了第十八关,剩下的做不了了,考的是flash xss得反编译分析,暂时没有去研究了。待日后在弄吧。

注意:题目需要在firefox下做,chrome下的xss audit太猛了,或者关闭再做也是可以的。

Level 1

第一题很简单,没有任何过滤,输出在标签之间。

参考payload:

<svg/onload=alert(1)>

Level 2

输出点有两个

测试之后发现第二个点可以。

闭合掉双引号,用on事件就可以了。

参考payload:

" onclick=alert(1)> 需要点击一下输入框。
" onmouseover=alert(1)> 要鼠标滑过输入框

Level 3

两个输出点,依旧是标签属性内的可以

用单引号闭合即可,然后用on事件,大同小异。

参考payload:

' onclick=alert(1)%0a  %0a用做换行使的input标签语法正确,主要是因为过滤了“>”。

Level 4

和level 3如出一辙,只是换成了双引号

参考payload:

" onclick=alert(1)%0a 

这里就不截图了。

Level 5

这里过滤on事件,on会变成o_n

故用javascript来绕过

参考payload:

"><a href=javascript:alert(1)> 点击一下链接即可  

Level 6

这道题同样是过滤了on,但也过滤src,href等。

但最后发现可以大小写绕过,参考payload:

"><svg x="" Onclick=alert(1)>

Level 7

这道题过滤script等关键字,发现置换为空,所以可以双写绕过。

参考payload:

">hello<sscriptcript>alert(1)</sscriptcript>

Level 8

这道题过滤javascript关键字,会把javascript变成javasc_ript。可以通过tab制表符绕过(%09)

参考payload:

javasc%09ript:alert(1) 需要点击一下页面内链接

Level 9

这道题做的时候感觉有点怪怪的,不知道过滤什么,故参考了一下先知的wp,发现是必须要包含http://。

同样这道题也过滤了javascript关键字,会变成javascr_ipt。

参考payload:

javascr%09ipt:alert(1)//http:// 这里必须要用单行注释符//注释掉后面的http://,这里因为在javascript伪协议里面,属于js范畴,所以单行注释符是可以使用的。

Level 10

这道题做的时候也是蒙圈,keyword过滤了用不了,没有输出点怎么破?看了一下先知的wp,发现有隐藏的form和input。

因为也没过滤什么,最后的参考payload为:

keyword=test&t_sort=" type="text" onclick="alert()

Level 11 12 13

这三道题都是一样的东西,从第十关过来之后会发现t_ref有东西

参考payload:

" type="text" onclick="alert()

(其他两题payload是一样的,只是输入点不一样而已,12关输入点是ua,13关输入点是cookie)

因为11题是referer,所以得用burpsuite来抓包改,直接用hackbar是改不了的。

修改成payload之后,发包即可。

 Level 14

看了先知的wp,才知道是图片exif 藏有xss payload。但是我自己测试不成功,就不截图了。详情可以参考先知的(https://xianzhi.aliyun.com/forum/read/1462.html?page=2)

Level 15

这一关考的angular js的知识,稍微百度一下相关知识

发现ng-include有包含文件的意思,也就相当于php里面的include。看了一下先知的wp。

发现可以包含第一关的页面,最后的参考payload:

src='level1.php?name=<img src=x onerror=alert(1)>'

Level 16

这一关,过滤了空格。可以选择用其他符号来绕过比如(%0a%0d)

参考payload:

<img%0a%0dsrc=x%0a%0donerror=alert(1)>

Level 17 18

这两关的考点是一样的,同样的payload可以过。放了个swf在页面,搞得我以为是flash xss,反编译,看源码折腾了一会,发现找不到点。然后想去参考一下先知的,结果发现不是flash xss,泪奔。

参考payload:

  onmouseover=alert(1) 注意:onmouseover前面有一个空格

Level 19,20

这两道题看了一下,都过滤了双引号,闭合不了。应该是考flash的。

想着flash不会就跳过了这两道题,去看一下21题,但是访问报错了,不知道是没有了还是必须得做出前面的题才行。那么,也就到这里为止了。

总结:

经过这次闯关,学习到不少东西,也巩固了不少知识。

做题的时候还有点心急了,导致看了参考,这样不利于自己解题。重要的是过程,明白其原理!

不能太懒,这样只能是慢别人半拍。

某xss挑战赛闯关笔记的更多相关文章

  1. XSS Challenges闯关笔记

    前言 做xss做疯了再来一个. 地址:https://xss-quiz.int21h.jp/ ,这个貌似是日本的一个安全研究员yamagata21做的. 做到第九关就跪了,而总共有二十关.一半都还没有 ...

  2. W3CSchool闯关笔记(Bootstrap)

    该闯关内容与JS闯关衔接. 每一题的答案均在注释处, 第一关:把所有的HTML内容放在一个包含有container-fluid的class名称的div下(注意,是所有的HTML内容,style标签属于 ...

  3. W3CSchool实战闯关笔记(JavaScript)

    //handsome /** *ugly **/ 第一关注释 // 举例 var myName; // Define myName below this line 第二关声明变量 // Setup v ...

  4. W3CSchool闯关笔记(JQuery)

    <script> $(document).ready(function(){ }); </script> <!-- Only change code above this ...

  5. The Python Challenge 闯关笔记

    The Python Challenge : http://www.pythonchallenge.com/ Level 0: 看提示图片中为2**38,计算值为274877906944. Hint: ...

  6. W3CSchool闯关笔记(中级脚本算法)

    坚持下去,编程是一门艺术,与君共勉!!! function sumAll(arr) { var result = 0; var sn = Math.min(arr[0] , arr[1]); var ...

  7. W3CSchool闯关笔记(初级脚本算法)

    W3C后台校验代码bug很多,有的时候跑不过不一定是自己代码写得有问题,也许是网页后台的bug,可以自己把代码放到本地的html文件中跑一下看看 function reverseString(str) ...

  8. XSS闯关游戏准备阶段及XSS构造方法

    请下载好XSS闯关文件后,解压后放在服务器的对应文件夹即可 在该闯关中,会在网页提示一个payload数值 payload,翻译过来是有效载荷 通常在传输数据时,为了使数据传输更可靠,要把原始数据分批 ...

  9. 网页闯关游戏(riddle webgame)--SQL注入的潘多拉魔盒

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞 ...

随机推荐

  1. TRITON恶意软件简单分析与防护方案

    一.攻击简介 2017年12月,安全研究人员发现了一款针对工控系统安全仪表系统(SIS)的恶意软件"TRITON",该软件以施耐德电气Triconex安全仪表控制系统为目标展开攻击 ...

  2. form表单提交和ajax提交优先级

    form中若定义action,那么,ajax将不能执行.form默认提交的请求优先级高于ajax

  3. EFCore2.0 Code First基本使用

    前言 在网上找EFCore Code First相关的文章,很多都是基于core 1.0版本的,觉得有必要自己实践下2.0.所以,撸起袖子干吧!~ 1.新建控制台项目(这里就不放图了) 2.打开程序包 ...

  4. JavaWeb核心技术学习 - 1.从JDBC说起

    作者:java1to3链接:http://www.cnblogs.com/java1to3/著作权归作者所有.未经作者本人同意,禁止一切转载.商业或非商业转载请联系作者获得授权并请注明出处. ・JDB ...

  5. 网络协议之ipv6

    1. 地址分类 比較重要的主要有以下几种: 本地链路地址:用于链路之间相互通信 本地网站地址:用于子网内互相通信,类似于ipv4中的私有地址 全球单播地址:类似于ipv4中的公网地址 组播地址 2. ...

  6. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Query was empty

    1 错误描写叙述 at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(Invocable ...

  7. Spring基础知识之基于注解的AOP

    背景概念: 1)横切关注点:散布在应用中多处的功能称为横切关注点 2)通知(Advice):切面完成的工作.通知定了了切面是什么及何时调用. 5中可以应用的通知: 前置通知(Before):在目标方法 ...

  8. Effective Java 第三版——6. 避免创建不必要的对象

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  9. Android查缺补漏--Service和IntentService

    Service的运行不依赖界面,即使程序被切换到后台,Service仍然能够保持正常运行.当某个应用程序进程被杀掉时,所有依赖于该进程的Service也会停止运行. Service 分为启动状态和绑定 ...

  10. C#Linq技术中SelectMany(...)函数的内部实现的伪代码

    我们先来假设这种场景: 一个学校中有多个年级,一个年级有多个班级,一个班级里有多个学生.这里我们只需要班级.年级.和学生这三个概念: 让我们先来定义Class类和Student类: // 注意,Cla ...