• XSS Challenges 练习(1-10)


    这几天对XSS Challenges平台进行了练习,网上也有一些相应的解答博客,但是写得都差不多,我觉得可以试一下从怎么做这种题的角度出发去思考问题。

    第一题:http://xss-quiz.int21h.jp/

    大概意思就是弹窗内容为(document.domain);就可以通关。直接使用<script>alert(document.domain);</script>实验一下

     

    可以看到已经通过,第一关基本就是送分题

    接下来进入第二关 http://xss-quiz.int21h.jp/stage2.php?sid=106cdb0a46450efb744850a579323ac9103d907c

    首先输入最简单的XSS代码实验一下,发现并没有通关,然后查看源代码

    可以看到XSS所在的位置在input语句里面,闭合之前的代码"><script>alert(document.domain);</script><  就可以通关

    这道题的考点就是闭合原来的语句就是:关闭当前标签然后添加脚本

    第三关 http://xss-quiz.int21h.jp/stage-3.php?sid=d830eb35fde6abc802cb930e5ba1b2adaaf6680d

    直接使用<script>alert(document.domain)</script>试验一下,发现没有成功,输入框位置使用的name="p1"代替

    用burp抓个包看一下

    可以看到p1的内容,输入的字符被转义了,修改p1为<script>alert(document.domain)</script>尝试绕过试过一下

    发现并不行,但p1后面还有一个p2,修改p2的内容为<script>alert(document.domain);</script>实验一下 

    这次可以通过了,这道题p1输入的内容被转义了,但是p2的内容没有做校验,可以抓包修改数据包进行攻击

    第四题 http://xss-quiz.int21h.jp/stage_4.php?sid=9fb2ab3ae196c1fb05d9157d3d5f6c91b2b4398c

    首先还是直接输入<script>alert(document.domain);</script>看一下,发现没有成功

    查看源代码,发现这道题和刚刚第三题的情况很相似,抓个包在看看

    数据包中数据,也是大同小异,但这次多了一个p3比较可疑,但还是得一步一步来,几次尝试,发现修改p1参数被转义了,p2的值修改之后又会恢复成Japan,都是没有效果。然后尝试修改p3的值

    提交之后发现并没有什么用

    这时查看一下源代码

    可以看到p3修改的值没有转义,可以进一步利用,但是能不能执行还不知道,因为此时我们需要将标签闭合

    我是直接在这里修改的看着没啥问题之后,再抓包修改p3的值尝试一下

    这样第四关就过了,这一关看起来和第三关形式比较像,然后我先按照第三关的模式试了一下,发现p1被转义,p2修改不了,p3可以修改又没有被转义,查看源代码之后结合第二关的思路开始进行的尝试。

    第五关 http://xss-quiz.int21h.jp/stage--5.php?sid=2d4972900f3da3e4e8dd3bb442c5e59402ede268

    首先还是直接输入<script>alert(document.domain)</script>尝试一下,发现没有成功,然后查看一波源代码进行分析

    可以看到输入的内容并没有被转义,所以说还是有机会的,但是添加了检验maxlength="15",这时我首先想到的是使用burp进行绕过。水平有限,所以我先利用源代码编辑一下绕过的语句,看着没问题了直接贴到burp就行了

    发现可以通过了,这一关还是挺简单的,考点应该就是绕过校验,还有闭合标签

    第六题 http://xss-quiz.int21h.jp/stage-no6.php?sid=60b74c922558e644330a8769788ef25dae80d8e0

    首先输入<script>alert(document.domain)</script>尝试一下,然后查看一下源代码

     然后我决定先闭合标签试一下

    然后和之前比较了一下,发现"<" ,">"是这两个标签被转义了,尝试绕过试一下

    没办法绕过,不能使用<>但是可以构造" onmouseover="alert(document.domain)攻击

    第七题 http://xss-quiz.int21h.jp/stage07.php?sid=c702ac5f967df2831c3920c1aa3100af0b3e5aa8

    还是不能成功,然后试了一下先闭合标签绕过也没啥用,使用" onmouseover="alert(document.domain)时,发现输入的信息被截断了

     这道题有点懵,查看了一波网上的教程,说是"被过滤了,然后我试了一下

    实验了一下觉得应该是 "空格 之后的内容被截断了,这道题可以使用可以使用test onmouseover=alert(document.domain)  空格符分割进行

    第八题 http://xss-quiz.int21h.jp/stage008.php?sid=b23793aaeaad16b5faa949a246a1316e9cf24917

    第八题主要考察的是在a标签的使用。伪协议不同于因特网上所真实存在的协议,如http://,https://,ftp://,

    而是为关联应用程序而使用的.如:tencent://(关联QQ),data:(用base64编码来在浏览器端输出二进制文件),还有就是javascript:

    可以在Chrome浏览器输入"javascript:alert("XSS");"实验一下,实际上是把javascript:后面的代码当JavaScript来执行,并将结果值返回给当前页面。

    然后回到这道题,题目是输入一个URL,直接提交javascript:alert(document.domain),点击下面的链接就可以过关了

    第九题 http://xss-quiz.int21h.jp/stage_09.php?sid=7e3613202c0e7cc4ed129d4c60b98dbe887aa456

     这个好像得用IE 7 环境加上UTF7编码才行,有时间搭起环境再试一下吧,暂时先跳过了

    第十题 http://xss-quiz.int21h.jp/stage00010.php?sid=b86e436416bd0ed72ba8e07ffd237471e7bd006d

    输入<script>alert(document.domain);</script>,确定,发现domain,被过滤了

    这个时候用双写domain、或者大小写都可以绕过,但是大小写不符合这道题的要求,所以使用双写再加上闭合标签就可以通过

    "><script>alert(document.dodomainmain);</script><

  • 相关阅读:
    python json 和 pickle的补充 hashlib configparser logging
    go 流程语句 if goto for swich
    go array slice map make new操作
    go 基础
    块级元素 行内元素 空元素
    咽炎就医用药(慢性肥厚性咽炎)
    春季感冒是风寒还是风热(转的文章)
    秋季感冒 咳嗽 怎么选药
    解决IE浏览器“无法显示此网页”的问题
    常用的 css 样式 记录
  • 原文地址:https://www.cnblogs.com/hai-long/p/10924120.html
Copyright © 2020-2023  润新知