热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

xsschallenges平台学习

虽然在很早之前就接触过xss,有一段时间还就着一本书研究过,但是始终没有实感,掌握的也不够系统,所以现在借着这几个平台再学习一遍首先来玩一玩xsschallenge平台第

     虽然在很早之前就接触过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,还是不行

    

     于是想到可以用标签:">here<"但是,因为对script做了过滤,所以要将script中的某个字符转为unicode编码,或者可以插入&#09;不可见字符

    

第十二关: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


推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • PHP中的单例模式与静态变量的区别及使用方法
    本文介绍了PHP中的单例模式与静态变量的区别及使用方法。在PHP中,静态变量的存活周期仅仅是每次PHP的会话周期,与Java、C++不同。静态变量在PHP中的作用域仅限于当前文件内,在函数或类中可以传递变量。本文还通过示例代码解释了静态变量在函数和类中的使用方法,并说明了静态变量的生命周期与结构体的生命周期相关联。同时,本文还介绍了静态变量在类中的使用方法,并通过示例代码展示了如何在类中使用静态变量。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 实现一个通讯录系统,可添加、删除、修改、查找、显示、清空、排序通讯录信息
    本文介绍了如何实现一个通讯录系统,该系统可以实现添加、删除、修改、查找、显示、清空、排序通讯录信息的功能。通过定义结构体LINK和PEOPLE来存储通讯录信息,使用相关函数来实现各项功能。详细介绍了每个功能的实现方法。 ... [详细]
author-avatar
奎奎201277
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有