渗透靶场PortSwigger Labs指南:规范链接的反射XSS
Lab 17:规范链接标签中的反射型 XSS
进入首页的留言板功能,输入测试语句查看返回内容
可以看到我们测试语句的<>
被 html 实体编码了,无法被执行了
只能尝试在 url 中插入测试语句测试
当我们输入一个?
加上输入的字符即可让服务器返回一个 head
里面包含 一个<link>
有我们请求的链接
rel
是 HTML <link>
标签中的关键属性,用于定义当前文档与链接资源之间的关系
rel="canonical"
指定网页的规范URL(Canonical URL),告诉搜索引擎哪个版本是页面的“主版本”,避免访问到其他版本的链接
可以通过在 link
中的 url 后输入构造的语句,对规范链接设置某种可触发事件,触发alert()
但是由于这里输入的东西不会显示到页面上,无法让用户点击执行,所以需要通过设置快捷键的方式执行
可以看到链接在单引号内,我们可以尝试通过拼接单引号设置某种属性。
?Zerlk'accesskey='x'onclick='alert(1)
这样就在添加了属性和事件的基础上完成了单引号闭合
accesskey='x'
设置快捷键x
触发事件
按下shift+alt+x
即可触发onclick
事件执行弹窗
Lab 18:将反射型 XSS 注入 JavaScript 字符串中,并使用单引号和反斜杠进行转义
先输入 test 进行测试返回内容
再试试test'
,返回出现了转义符
当我们输入test'<script>alert(1)<script>
时页面出现了问题,我们输入的一个</script>被 DOM 解析了
只需要再次构造闭合原有的 script 标签即可test'</script><script>alert(1)</script>