码迷,mamicode.com
首页 > 其他好文 > 详细

XSS Challenge(2)

时间:2020-01-06 14:38:00      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:支持   查看   src   res   成功   注意   字符   asc   hal   

XSS Challenges

http://xss-quiz.int21h.jp/

 

Stage #13

技术图片

  Hint:style attribute;要用到style属性,在style属性中有个expression属性可以来完成,但是只能是IE6以下的浏览器才支持;

 技术图片

 技术图片

  将浏览器切换到IE5兼容模式,然后输入payload

 技术图片

 

Stage #14

 技术图片

  Hint:对url、script、eval、expression做了过滤,将这些单词转换成xxx,我们无法通过大小写、双写绕过,但是可以用注释绕过;

 技术图片

 

Stage #15

 技术图片

  Hint:document.write();

  查看返回;

 技术图片

  发现直接返回在<script>标签中,直接输入payload;

 技术图片

 技术图片

  查看源码发现<、>被编码了,因为返回直接是在script标签中,所以我们可以通过编码绕过,script可以执行编码过的内容,这里我们采用unicode编码;

 技术图片

 

Stage #16

 技术图片

  Hint:多了一个过滤,将\x转换成\\x;好像我之前的方法同样适用;

 技术图片

 

Stage #17

 技术图片

  Hint:多字节字符以及要用旧版IE,先测试一下返回;

 技术图片

  两个参数均返回在value属性中,注意闭合引号;

 技术图片

  发现引号被过滤,<、>也均被过滤,那么考虑直接用onmouseover等属性来代替<、>,根据提示本题存在宽字节漏洞,又因为本题存在两个参数,那么我们将第一个value的后面的引号用宽字节吃掉,后面的value的第一个引号就会变成第一个value第一个引号的闭合引号,我们直接在第二个参数输入payload即可;

技术图片

技术图片

  发现未成功,原理应该是对的,此处可能是IE版本的缘故;

 

Stage #18

 技术图片

  Hint:ascii高比特位的问题,去查了一下原来在IE8之前,浏览器会将8位的二进制只取7位来解释!先测试一下返回;

技术图片

  返回在value属性中,先试一下正常闭合引号的payload;

技术图片

  可以发现引号、<、>均被过滤了,那么我们试着改变其ASCII码的高位;

  • <的16进制是3C,二进制是0011 1100,那么将高位的0改成1后变成1011 1100,即BC;
  • >同理变成BE;
  • “同理变成A2;

 技术图片

技术图片

  最后因为IE版本的问题并没有成功;

 

 

   END~

XSS Challenge(2)

标签:支持   查看   src   res   成功   注意   字符   asc   hal   

原文地址:https://www.cnblogs.com/Dio-Hch/p/12155884.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!