欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

XSS绕过实战练习

来源:本站整理 作者:佚名 时间:2019-06-19 TAG: 我要投稿

我写这篇文章起源来自于一次网络安全实验课,在实验虚拟环境里有一个xss挑战,估计是搬别人的xss挑战进来,我觉得挺有意思,就记录一下。有些关卡不能再虚拟环境实践,我在自己物理机上找到那个xss挑战平台进行实现。
level1
未进行过滤,直接输入payloadpayload:alert(/xss/)

level2
发现对html特殊符号进行了实体编码,失效,但是发现下面input标签里还有一个输出点,可以对这个构造事件payload

payload:" onclick=alert(/xss/)>
当然需要点击一下触发

level3
编码了双引号,但是源码里用的单引号,用单引号构造即可
payload:'onclick=alert(/xss/)>

level4
过滤了符号,我们只能用事件绕过,这里利用浏览器的容错特性,不闭合直接注释也能执行
payload:" onclick=alert(/xss/)//

level5
有两处输出的地方,第一处对特殊符号进行了实体编码,第二处将on开头的事件全部替换加下斜杠,也将标签替换为,并且做了转小写处理,这里因为匹配的是标签,而不是script字符,所以可以使用javascript:alert(/xss/),并且可以闭合双引号,那我们就构造链接弹窗

payload:">xss
点击xss

level6
这里紧接就过滤了href标签,但是却没有做小写处理,可以用大写绕过匹配
payload:">xss
或者:">alert(/xss/)


level7
做了小写处理,将script和href,src,on等字符串替换为空字符

猜测只替换了一次,我们可以用双写绕过
payload:
">alert(/xss/)
">xss
">
" oonnclick=alert(/xss/)>

level8
做了小写处理,将script和href,src,on等字符串加上下斜杠,使其无法正常解析,还将双引号实体编码,是我们不能闭合双引号
这里是一个a标签,用href构造一个链接

想到可以调用外部js,但事实并没那么简单,因为完成目标需要在本页面弹窗,才会显示输出,并跳转到下一关

因为这里是先添加一个链接,再打开这个链接,会打开另一个界面,就不在本界面弹窗,所以外部调用不可行
只能用伪协议javascript:alert(/xss/),但script会被替换
那我们只有尝试编码绕过了
用实体编码可绕过
payload:
十进制实体编码:javascript:alert(/xss/)
十六进制实体编码:javascript:alert(/xss/)

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载