XSS挑战之旅闯关笔记

环境自己搭建~~好嚣张:

    

1.http://127.0.0.1:8024/xss/level1.php?name=test  这是URL 看到后面name有参数传递,不多想直接尝试xss。

      没有任何过滤。

       payload :http://127.0.0.1:8024/xss/level1.php?name=<script>alert('xss')</script>

    

2.http://127.0.0.1:8024/xss/level2.php?keyword=test   和上题差不多的URL 直接换参数

    

    发现没有成功,那就只有看源代码了。看看做了什么过滤之类的

      

    发现payload在value中没有生效,构造payload  :  " > <script>alert('xss')</script> id="  使用(">)把前面的闭合 然后在后面可以加一个空id  或者payload : " > <script>alert('xss')</script> // 最后加//把后面的双引号注释掉即可。:

        或者使用payload : " onclick=alert(1) id="  然后点击一下文本框也可以

        

3.直接在文本框输出尝试,发现不能成功。然后查看源代码:

      

      直接构造payload :单引号闭合 ,使用on事件。  payload:' onclick=alert(1) //    这里对<>做了过滤。

        

4. 直接插入尝试,失败。查看源代码:

      

      发现对<>没有了 做了转译。直接构造payload :" onclick=alert(1) //

        

 

        或者使用 onmouseover 函数 ,payload : "  onmouseover=alert(1) //

             

5. 直接插入尝试,失败。查看源代码:

          

          出来双引号还过滤了 script  变成了 scr_ipt  。使用on事件尝试,发现也过滤了on事件, on 变成了 o_n。 

          这里利用Javascript伪协议 直接构造payload:" > <a href=javascript:alert(1)> // 

              

6.<script>尝试 ,查看源代码:

        

 

        出来双引号还过滤了 script  变成了 scr_ipt  。使用on事件尝试,发现也过滤了on事件, on 变成了 o_n。 使用Javascript伪协议 发现  href 变成了 hr_ef 。src 也过滤了。

        构造payload 尝试绕过,大小写。payload: " Onclick=alert(1) //

           

 

 7..<script>尝试 ,查看源代码:

         

        直接把script 给过滤了。尝试双写绕过。payload: "> <scrscriptipt>alert(1)</scrscriptipt>

          

8.直接构造简单payload 进行尝试。发现没有任何反应,查看源代码:

      

      发现2个输出点,之前的实验也有2个输出点,不过好尝试没有细说。这里不好绕过。

       第一个输出点,<>给编码转换了。然后进行不带<>的payload尝试,还有一些绕过,发现没有成功。直接尝试第二个输出点。

       第二个输出点,直接看到 href 直接想到JavaScript 伪协议 尝试。

        

        发现也被过滤 javascript变成javascr_ipt ,尝试大小写绕过,发现不可行。然后想到tab绕过。

         构造payload:javascr  ipt:alert(1)     tab制表符 %09   发下可以绕过。

            

 

     

9.见框就插,构造payload。查看源代码

        

        发现也有2个输出点。在第一个输出点构造payload。各种payload都显示链接不合法。  href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段,猜想是否必须有 超文本传输协议http:// ,然后进行尝试。

        

        发现猜想正确,没有返回链接不合法。然后与JavaScript 相结合, 构造payload: javascript=alert(1)//http://    第一个//是为了注释掉后面的http://

          

 

10. 发现没有文本框可以插入,但是url有参数传递。直接简单payload测试。发现没有任何反应。

 

 

 

 

       

 

posted @ 2018-05-02 19:18  G0mini  阅读(389)  评论(0编辑  收藏  举报