1.这跟前几关不同,这关是个存储型的xss漏洞,
点击友情链接之后
查看源码,常规的字段都被替换添加了下划线,然后我们输入的字符串会插入a标签里面当作超链接导向。
2.这里的思路就是利用<a>标签中的 href属性来执行javascript代码,简单来讲就是如果 href后面跟一个url的话就会去访问url地址,如果是javascript伪协议(javascript:)就会执行javascript。
那知道了利用的原理,我们还要应对过滤,这里有两个办法
(1)利用href属性引号中的内容可以使用空字符、空格、TAB换行、注释、特殊的函数,将代码隔开。 如:javas%09cript:alert()、javas%0acript:alert()、javas%0dcript:alert()。这些特殊字符在href中不会破坏原有的代码执行。
因为这里直接在输入框输入url编码的数据会被再次编码,所以我们在url直接提交,使用%0a(换行符)隔开,payload:
javascrip%0at:alert('xss')
提交成功后,当鼠标指向“友情链接”,可以看到左下角出现了我们的JavaScript伪协议代码,点击后就会运行代码。
(2)使用html实体编码绕过替换,在线转换
直接输入会被替换
这中方法输入跟我们的利用特殊符号分割过滤关键字反过来,转换后必须在输入框输入,不能在url中提交,否则会提交空数据。
点击后会运行JavaScript代码
[…] xss-labs level 8 […]
1
1
1