xss challenges平台学习
虽然在很早之前就接触过xss,有一段时间还就着一本书研究过,但是始终没有实感,掌握的也不够系统,所以现在借着这几个平台再学习一遍
首先来玩一玩xss challenge平台
第一关:http://xss-quiz.int21h.jp/?sid=2a75ff06e0147586b7ceb0fe68ee443b86a6e7b9
第二关:http://xss-quiz.int21h.jp/stage2.php?sid=f2d7d60125bdddb208fa757ee5cdae22f6818cd1
提示:close the current tag and add SCRIPT tag...
第三关:http://xss-quiz.int21h.jp/stage-3.php?sid=93de7707279b3a5ae4ce419bfc7c0b1f380a20f6
提示:The input in text box is properly escaped.
尝试输入查看源码发现<>被转义了,于是抓包在country的位置插入xss
成功
第四关:http://xss-quiz.int21h.jp/stage_4.php?sid=be5650b31307cf0ca1927eae2e4b755d72a4162c
提示:invisible input field
尝试在search和country处插入xss,但是查看源码发现都被转义了
同时,在抓到的包中发现存在参数p3,于是尝试在p3处插入语句,出错了,看了下源码,发现需要闭合
再来一次,成功
在源码中可以看到,改了之后的语句成功的闭合了input
第五关:http://xss-quiz.int21h.jp/stage--5.php?sid=92e1efdf82ec7681dc71fd4b5b15470cce1bbe27
提示:length limited text box
尝试在search处插入xss,发现存在输入长度的限定,于是想到可以用burp抓包,然后再修改search的值
但同样的这里也需要闭合,修改一下再发一次
成功了
还有一种方法,直接改maxlength=15
第六关:http://xss-quiz.int21h.jp/stage-no6.php?sid=10284e95452262a58b13c86015336f4489b6152e
提示:event handler attributes
输入"><script>alert(document.domain)</script><发现“<>”被过滤
那么可以用onclick在input中触发:" onclick=alert(document.domain) id="a
然后点击输入框
第七关:http://xss-quiz.int21h.jp/stage07.php?sid=2e71a47a9c7061dcce2b9205b52f4252bd53b443
提示:nearly the same... but a bit more tricky.
和上一关一样,这里的"<>都被转义了
但事实上,用" onclick=alert(document.domain)还是可以插入,因为前面的"不影响后面的onlick点击事件
还有一种方法:1 onmouseover=alert(document.domain);
onmouseover:事件会在鼠标指针移动到指定的元素上时发生。
第八关:http://xss-quiz.int21h.jp/stage008.php?sid=8407d42ea5cf46b072f5a358abffa591a449a2ba
提示:the 'javascript' scheme.
scheme:属性设置或返回用于解释 content 属性的值的格式
也就是,用js的伪协议,当点击链接的时候弹出窗口
第九关:http://xss-quiz.int21h.jp/stage_09.php?sid=fcf3010be4306306e9668ee51b9d6916c0b3e129
提示:UTF-7 XSS
"<>都被转义了,当然也不能用onmouseover和onclick,根据提示,用UTF-7编码解码工具,将" onmousemove="alert(document.domain)转为UTF-7编码:
p1=1%2bACI- onmouseover=%2bACI-alert(document.domain)%2bADsAIg- x=%2bACI-&charset=UTF-7
这个对使用的IE浏览器有一定的限制,大部分浏览器都已经修复了这个漏洞,但IE7还没有
因为我的实验环境没有IE7,所以这里直接用的另一个简单粗暴的方法:
firebug是很强大的...
第十关:http://xss-quiz.int21h.jp/stage00010.php?sid=718360225fa9356a42c30995f38b5142c3496f6a
提示:s/domain//g;
很尴尬,他把domain过滤了
但是可以这样,很常见的方过滤方式:
第十一关:http://xss-quiz.int21h.jp/stage11th.php?sid=4a4c328baf358d9bf01befc79228e70d25549025
提示:s/script/xscript/ig;" and "s/on[a-z]+=/onxxx=/ig;" and "s/style=/stxxx=/ig;
对script进行了过滤
试试onclick和onmouseover,还是不行
于是想到可以用<a>标签:"><a href="javascript:alert(document.domain);">here</a><"但是,因为对script做了过滤,所以要将script中的某个字符转为unicode编码,或者可以插入 不可见字符
第十二关:http://xss-quiz.int21h.jp/stage_no012.php?sid=66a49c46b3d8e490003681f359c7b8b14ba174c8
提示:s/[\x00-\x20\<\>\"\']//g;
<>"被过滤,根据提示可以知道x00-,x20,<,>,",'都被过滤了,但是`还没被过滤,于是可以用`加上onclick,onmouseover,onfocus均可,还有一个前提是IE,只有IE才有这个特性
第十三关:http://xss-quiz.int21h.jp/stage13_0.php?sid=ea59af045ae260dd938d73d6cbbd1c92a6806e06
提示:style attribute
在CSS样式中利用expression实现javascript中的onmouseover或onmouseout事件,同样前提是IE
aa:expression(onmouseover=function(){alert(document.domain)})
还有一种:
background-color:#f00;background:url("javascript:alert(document.domain);");
第十四关:http://xss-quiz.int21h.jp/stage-_-14.php?sid=88e5796eaebea97fe2b0cd79df9fbc9edad3ab9e
提示:s/(url|script|eval|expression)/xxx/ig;
这里过滤了expression,url,eval,script,但是通过加入注释符可绕过:here:expre/**/ssion(onmouseover=function(){alert(document.domain)})
或者:here:expre/**/ssion(window.x?0:(alert(document.domain),window.x=1));
还有几种绕过过滤的方法:加\,加\0,将e转码为\0056
第十五关:http://xss-quiz.int21h.jp/stage__15.php?sid=1e785fb96bdb203c00b034203ee574681d1b4403
提示:document.write();
被过滤
有几种方过滤的方法:
第一种:换成16进制编码\\x3cscript\\x3ealert(document.domain);\\x3c/script\\x3e
第二种:换成Unicode编码\\u003cscript\\u003ealert(document.domain);\\u003c/script\\u003e
第十六关:http://xss-quiz.int21h.jp/stage00000016.php?sid=d3e7f2565164c8482f758c4a887073bc36bccc45
提示:document.write();" and "s/\\x/\\\\x/ig;
第一种:换成Unicode编码\\u003cscript\\u003ealert(document.domain);\\u003c/script\\u003e
第二种:换成十进制\\74script\\76ealert(document.domain);\\74/script\\76
第十七关:http://xss-quiz.int21h.jp/stage-No17.php?sid=a207c91d7b4cb2634e277df104c853554347e8ca
提示:multi-byte character
思路类似于宽字节注入,利用特殊字节吃掉双引号,于是抓包修改p1,p2
p1=1%A7&p2=+onmouseover%3Dalert%28document.domain%29%3B+%A7
第十八关:http://xss-quiz.int21h.jp/stage__No18.php?sid=b23d6719a639f5655a2966a2f5ade6ec86841851
提示:us-ascii high bit issue
将每个字符的二进制最高位置为1,然后再转为16进制
故"><script>alert(document.domain)</scirpt> 就转换为%A2%BE%BCscript%BEalert(document.domain);%BC/script%BE
但是前提还是用旧的IE版本IE5,6
第十九关: http://xss-quiz.int21h.jp/stage_--19.php?sid=8e654fc6c2fe93f2c8bd38fbc6ad6b1588d859c7
提示:Twitter DomXss at Sep 24, 2010
参考文献:
http://blog.csdn.net/nixawk/article/details/28038509
http://www.2cto.com/article/201509/441858.html
http://blog.csdn.net/emaste_r/article/details/16988167
xss challenges平台学习的更多相关文章
- XSS Challenges 练习(1-10)
这几天对XSS Challenges平台进行了练习,网上也有一些相应的解答博客,但是写得都差不多,我觉得可以试一下从怎么做这种题的角度出发去思考问题. 第一题:http://xss-quiz.int2 ...
- XSS平台-学习
单点登录 - Telnet 404https://sso.telnet404.com/cas/login?service=https%3A%2F%2Fwww.seebug.org%2Faccounts ...
- XSS练习平台-XSS Challenges
XSS Challenges http://xss-quiz.int21h.jp/ XSS基础不好的建议优先查看 关于XSS中使用到的html编码 js编码各种场景用法 http://su.xmd ...
- XSS Challenges学习笔记 Stage#1~ Stage#19
开门见山 Stage #1 http://xss-quiz.int21h.jp/?sid=2a75ff06e0147586b7ceb0fe68ee443b86a6e7b9 这一道题发现我们写入的内容直 ...
- 1.6 xss挑战平台练习
------------------------- XSS挑战之旅 ------------------------- 最近在学习xss,找到了一个xss练习平台,在线地址:http://test.x ...
- 在线xss练习平台
在线xss练习平台 HTTPS://ALF.NU/ALERT1 这个是只要能输出alert1就算赢. No.1第一个就很简单了,什么都没有过滤,只需要闭合前面的标签就可以执行xss了. 1 " ...
- XSS Challenges(1-12关)
XSS Challenges解析: 1. 什么过滤也没有,而且是直接输出.<scrip>alert(document.domain);</script>即可通过 2. 直接输入 ...
- 搭建XSS测试平台
XSS测试平台是测试XSS漏洞获取cookie并接收web页面的平台,XSS可以做js能做的所有事情,包括但不限于窃取cookie,后台增删文章.钓鱼.利用xss漏洞进行传播.修改网页代码.网站重定向 ...
- XSS跨站脚本攻击学习笔记(pikachu)
颓废了几天,该好好努力了. XSS概述 XSS漏洞是web漏洞中危害较大的漏洞,是一种发生在web前端的漏洞,所以危害的对象也主要是前端用户,XSS可以用来进行钓鱼攻击,前端js挖矿,获取用户cook ...
随机推荐
- python跳出多重循环
# -*- coding=utf-8 -*- """ 如何结束多重循环,在单层循环中,可以用break跳出循环,那两层,三层呢? """ # ...
- OSGi是什么:Java语言的动态模块系统(一)
OSGi是什么 OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构.OSGi容器已有多家开源实现,比如Knoflerfish.Equinox和Apache的Felix.您 ...
- linux 段页式内存管理
http://blog.chinaunix.net/uid-24227137-id-3723898.html 页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外零头,提高内存的利用率从:或 ...
- 关于安装多个版本jdk之后java -version不正确的问题
问题描述: 今天突然想写一个socket通信的小应用,分别采用BIO.NIO.AIO的方式来实现,来复习前面看的关于TCP/UDP通信的知识.于是乎在原来安装了jdk1.6的机子上重新安装了jdk1. ...
- 第9天:原型、继承、函数使用推荐以及this的指向
原型 javascript原型指向改变如何添加方法和访问 <!DOCTYPE html> <html lang="en"> <head> < ...
- 配置内核源码make menuconfig时出现 #include CURSES_LOC错误
配置内核时出现如下错误: liuxin@sunshine-virtual-machine:~/work/nfs_root/system/linux-2.6.22.6$ make menuconfig ...
- Golang把所有包括底层类库,输出到stderr的内容, 重新定向到一个日志文件里面?
不论应用是如何部署的,我们都期望能扑捉到应用的错误日志, 解决思路: 自己写代码处理异常拦截,甚至直接在main函数中写异常拦截. stderr重定向到某个文件里 使用 syscall.Dup2 第一 ...
- javaweb项目中绝对路径的写法理解
Tomcat的默认访问路径为http://localhost:8080,后需添加项目路径. 请求转发,是转发到本项目中的其他文件,所以在默认访问路径中添加了本项目的项目路径,故可以省略项目名称: re ...
- java 包装类和基础数据
package com.tercher.demo; public class LangClass { public static void main(String[] args) { //所有的包装类 ...
- CF961F k-substrings
题意 给定一个字符串 \(S\) 求所有的 \(S[i,n-i+1]\) 的 \(border\) 长度(最长的前缀等于后缀),要求长度是奇数 \(n\le 10^6\) Sol 首先发现每次求的串都 ...