某xss挑战赛闯关笔记
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挑战赛闯关笔记的更多相关文章
- XSS Challenges闯关笔记
前言 做xss做疯了再来一个. 地址:https://xss-quiz.int21h.jp/ ,这个貌似是日本的一个安全研究员yamagata21做的. 做到第九关就跪了,而总共有二十关.一半都还没有 ...
- W3CSchool闯关笔记(Bootstrap)
该闯关内容与JS闯关衔接. 每一题的答案均在注释处, 第一关:把所有的HTML内容放在一个包含有container-fluid的class名称的div下(注意,是所有的HTML内容,style标签属于 ...
- W3CSchool实战闯关笔记(JavaScript)
//handsome /** *ugly **/ 第一关注释 // 举例 var myName; // Define myName below this line 第二关声明变量 // Setup v ...
- W3CSchool闯关笔记(JQuery)
<script> $(document).ready(function(){ }); </script> <!-- Only change code above this ...
- The Python Challenge 闯关笔记
The Python Challenge : http://www.pythonchallenge.com/ Level 0: 看提示图片中为2**38,计算值为274877906944. Hint: ...
- W3CSchool闯关笔记(中级脚本算法)
坚持下去,编程是一门艺术,与君共勉!!! function sumAll(arr) { var result = 0; var sn = Math.min(arr[0] , arr[1]); var ...
- W3CSchool闯关笔记(初级脚本算法)
W3C后台校验代码bug很多,有的时候跑不过不一定是自己代码写得有问题,也许是网页后台的bug,可以自己把代码放到本地的html文件中跑一下看看 function reverseString(str) ...
- XSS闯关游戏准备阶段及XSS构造方法
请下载好XSS闯关文件后,解压后放在服务器的对应文件夹即可 在该闯关中,会在网页提示一个payload数值 payload,翻译过来是有效载荷 通常在传输数据时,为了使数据传输更可靠,要把原始数据分批 ...
- 网页闯关游戏(riddle webgame)--SQL注入的潘多拉魔盒
前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞 ...
随机推荐
- 玩了几天的ARToolKit
因为玩的不深,就说一说配置环境出错的解决. 假如大家网上下载的ARToolKit下面有glut32.dll,那按照教程来配置环境的时候(其中有一步是:将OpenGL的dll拷贝到windows sys ...
- hdu3015 Disharmony Trees
Problem Description One day Sophia finds a very big square. There are n trees in the square. They ar ...
- 苹果新的编程语言 Swift 语言进阶(三)--基本运算和扩展运算
一 基本操作运算 1. 赋值操作 在Swift 中,能够使用赋值操作为一个常量或一个变量赋值,也能够使用多元组一次为多个常量或变量赋值. Swift 的赋值操作与其他语言最大的不同是赋值操作除了可以为 ...
- javascript中的事件Event
一.事件流 1.事件流:描述的是从页面中接受事件的顺序 IE的事件流是事件冒泡流,Netscape的事件流是事件捕获流. 2.事件冒泡 IE的事件流叫做事件冒泡(event bubbing),即事件开 ...
- 在Eclipse中如何关联源代码
我们就以Struts2框架为例,展示在Eclipse中如何关联源代码.例如,在Struts2框架的学习中,我们有时需要查看ActionSupport这个类的源码,这个时候就要在Eclipse中关联源代 ...
- CentOS 7 学习(三)配置Tomcat集群
所谓集群,就是把多台服务器集合起来,对外提供一个接口访问,对用户来说完全透明,常用的办法就是前端放一个服务器,将用户请求分发到不同的服务器,大致有以下几种方案 1)采取DNS轮询:将用户的连接解析到不 ...
- [100个改变摄影的伟大观念].(英)玛瑞恩.高清扫描版.pdf
下载地址 :https://u253469.ctfile.com/fs/253469-229765365
- 48、mysql补充
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- 【java设计模式】【创建模式Creational Pattern】抽象工厂模式Abstract Factory Pattern
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW0AAABvCAIAAACo3AbKAAALvUlEQVR4nO1dUa7cOA7U/c+zwJxkf4
- cors解决Web跨域访问问题
首先了解一下什么是跨域以及解决的几种常见方式. 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制. 所谓同源是指,域名,协议,端口均相同. 举例: 相对于 ...