xss-labs第九关
第九关

跟第八关一样,超链接跳转。
写入伪协议进行尝试

被转义了,尝试用第八关的unicode编码进行尝试


依旧不行。
这时,我们来尝试默认的输入。


结果还是一样的。那尝试输入带http协议网站进行尝试看看能否进行跳转。


跳转成功。
查看之前错误的和正确的网页端源代码


输入不正确的值 他会自动把href属性替换成他给你的中文,而输入正确则返回正常。猜测可能这次输入需要带http协议的网址才能成功。
那么构造payload,这一关卡应该和上一关卡一样做了过滤,所以依旧需要把javascript:alert(1)这句伪协议语句转换成unicode然后在加上我们的http协议网站进行尝试。
javascript:alert(1)//http://www.baidu.com
(ps:伪协议和网站一起写的话http前面需要加//不然不会执行alert语句)


攻击成功。
查看网页端源码

打开后端源码进行分析。

果然在第八关过滤的基础上,加上“http://”判断,如果不带的话就直接报错。
总结:第九关需要在前面unicode过滤的基础上加上http://语句才能绕过函数完成xss攻击。
浙公网安备 33010602011771号