xss挑战赛小记 0x03(xssgame)
0x00
继续做xss吧
这次是xssgame
地址 http://www.xssgame.com/
一共八关 学到了很多东西
0x01
啥也没有
<svg/onload="alert(1)">
0x02

显然是这个点了
');alert(1)(' 就行了 多个属性用分号间隔
换行回车也行
0x03

换图片的时候发现#1 这个东西 找了下显然是这个点
双引号没有成功 试了下单引号
#1.jpg' onload="alert(1)" 然后就是这样了
0x04
welcomewelcome下有个sign up 点击到singup下 signup?next=confirm 输入email之后到confirm下 自动跳转 confirm?next=welcome
一直是这样的循环 confirm下是一个自动跳转到welcome的
想到了伪协议 javascript:alert(1) 这就弹了
0x05

发现表单里还有两个隐藏的input
但是输入好像都不行
没辙看了wp 发现是一个angular js模板注入
ng-non-bindable这个下所有的属性都不会解析怪不得怎么闭合都没用
在campaign这个参数下
google出来的payload
{{x = {'y':''.constructor.prototype}; x['y'].charAt=[].join;$eval('x=alert(1)');}} 不能弹
但是wp给的payload可以
{{$eval(%27alert(1)%27)}}
两个隐藏的input的name参数都可以弹
0x06
还是angular模板 找了对应版本的注入payload
发现不行
单引号被转为实体字符了
试了一下get发送参数 发现会显示在form上
但是{会被吃掉
wp的意思是因为会经过模板的渲染 所以可以用实体字符
{用来代替{
{{a=%27constructor%27;b={};a.sub.call.call(b[a].getOwnPropertyDescriptor(b[a].getPrototypeOf(a.sub),a).value,0,%27alert(1)%27)()}}
{{$eval(%27alert(1)%27)}}
0x07
这道题说的是csp的绕过
Content-Security-Policy:default-src http://www.xssgame.com/f/d9u16LTxchEi/ http://www.xssgame.com/static/
观察页面 可见?menu=YWJvdXQ= 后面的参数会被base64解码
<script src="jsonp?menu=about"></script>这个东西就比较有意思了
搜了一下jsonp xss 提到了jsonp有个callback这个参数可能导致xss
传参给menu经过base加密的就好了
<script src="jsonp?callback=alert(1)"></script>
0x08
csp和前一题没有区别
有两个表单发给不同的地方 set和transfer
transfer的amount参数要求为数字 如果不为数字则会被显示
像是一个xss的点
插入xss代码发现不允许弹框 因为csrf_token的问题
仔细观察可以发现set表单下有些东西
首先可以设置name
同时设置的东西是存在cookie里面的
这样就可以控制csrf_token
其次redirect是控制跳转的
这样就可以通过设置csrf_token然后跳转到transfer下弹框
set?name=csrf_token&value=xx&redirect=transfer?name=attacker&amount=xxx"><script>alert(1)</script>&csrf_token=xx
但是不知道为啥 如果符号不经过url编码就不能成功
0x0X
这次其实还是一般参考了wp
暂时也只能做得出来简单的xss了
但是还是学习了一些新的姿势
xss挑战赛小记 0x03(xssgame)的更多相关文章
- xss挑战赛小记 0x02(prompt(1))
0x0O 上次搜xss挑战赛的时候 还找到了一个看上去难度更高的挑战赛 今天做了一下 学到了很多新东西 这个挑战赛能够在页面成功prompt(1)就算过关了 挑战地址 http://prompt.ml ...
- xss挑战赛小记 0x01(xsstest)
0x00 今天在先知社区看到了一个xss挑战赛 结果发现比赛已经结束 服务器也关了 百度找了个xss挑战赛来玩一下 正好印证下xss的学习--- 地址 http://test.xss.tv/ ...
- 某xss挑战赛闯关笔记
0x0 前言 在sec-news发现先知上师傅monika发了一个xss挑战赛的闯关wp([巨人肩膀上的矮子]XSS挑战之旅---游戏通关攻略(更新至18关)https://xianzhi.aliyu ...
- XSS挑战赛(3)
查看关键代码: <?php ini_set("display_errors", 0); $str = $_GET["keyword"]; $str00 = ...
- XSS挑战赛(2)
进入第六关 简单判断过滤情况 <>script"'/ 查看源代码 可以看到第二个红框部分跟之前类似,闭合双引号尝试进行弹窗 "><script>ale ...
- XSS挑战赛(4)
16-20关 第十六关 关键代码为: <?php ini_set("display_errors", 0); $str = strtolower($_GET["ke ...
- XSS挑战赛(1)
以前囫囵吞枣做过一遍,现在从头再来 第一关网址为:http://127.0.0.1/xss-labs-master/level1.php?name=test 而页面上显示了用户test,name可控, ...
- 先知xss挑战赛学习笔记
xss游戏 游戏地址:http://ec2-13-58-146-2.us-east-2.compute.amazonaws.com/ LEMON参考wp地址 1. 文件上传 源码如下 <?php ...
- 有趣的游戏:Google XSS Game
Google最近出了一XSS游戏: https://xss-game.appspot.com/ 我这个菜鸟看提示,花了两三个小时才全过了.. 这个游戏的规则是仅仅要在攻击网页上弹出alert窗体就能够 ...
随机推荐
- CentOS7 查询已安装的包方便整理 /卸载
以PHP为例.首先查看已安装的PHP rpm -qa |grep php 输出结果: php-cli--.el7.x86_64 php-common--.el7.x86_64 查询rpm包的安装时间和 ...
- 二维数组展示到DataGridView(c#)
窗体程序中二维数组展示到DataGridView public void TwoDArrayShowINDatagridview(string[,] arr) { DataTable dt = new ...
- POJ-1836 Alignment---LIS
题目链接: https://cn.vjudge.net/problem/POJ-1836 题目大意: 题意:令到原队列的最少士兵出列后,使得新队列任意一个士兵都能看到左边或者右边的无穷远处.就是使新队 ...
- 2014-2015 ACM-ICPC East Central North America Regional Contest (ECNA 2014) A、Continued Fractions 【模拟连分数】
任意门:http://codeforces.com/gym/100641/attachments Con + tin/(ued + Frac/tions) Time Limit: 3000/1000 ...
- POJ 2155 Matrix【二维树状数组+YY(区间计数)】
题目链接:http://poj.org/problem?id=2155 Matrix Time Limit: 3000MS Memory Limit: 65536K Total Submissio ...
- spring boot应用启动原理分析
spring boot quick start 在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个We ...
- 【洛谷P2341】受欢迎的牛
受欢迎的牛 题目描述 一些可以当明星的牛,一定会构成一个强连通分量,我们可以先缩点,最后统计一下出度为零的强连通分量大小即可, 若出度为零的强连通分量个数大于1,则输出0 #include<io ...
- Ueditor插入script标签
对于这个问题.我想有的人会遇到有的人不会遇到,后面说为什么. 有的人会百度解决问题.百度官方文档这样回答 然而你去editor_config.js搜索根本找不到这个配置.(百度你该更新了.....) ...
- BionicApi 学习笔记
1.内存管理 malloc, realloc, free new, delete2.文件输入操作 fopen, fwrite, fputs, fputc, fprintf, fflush fread, ...
- python中and,or
在很多逻辑语句中,常常会出现and,or这两个逻辑运算符. 下面直接上代码 print(0 or None) #None ''' or比较运算符: 当or旁两边都是真的话,那么会取第一个值 当or两边 ...