这一关界面感觉跟上一关很像 所以我们注入上一关的为编码的答案
javascript:alert('xss')
没能弹窗 查看源代码 他说我输入的链接不合法 我压根没有输入链接 我觉得后台应该是做了一个条件的判断 应该是要有链接才会在第二处输出点回显我们的输入
根据上面的猜测 我们构造如下
javascript:alert('xss')http://www.baidu.com
不错不错 果然是要通过某个判断才能够在第二处输出点回显输入
从下面的源代码中我们可以看得出
我们依然利用第二个输出点来进行弹窗代码的注入 既然出现了恶意下划线的插入 那么我们就进行以下大小写绕过处理吧
构造如下
javaSCRIPT:alert('xss')http://www.baidu.com
还是没用 估计是不区分大小写的添加恶意下划线吧
那么只能够通过unicode编码绕过处理了
将以下代码进行unicode编码处理
javascript:alert('xss')http://www.baidu.com
但是还是失败 说明得只编码js代码 不编码url 因为url是判断语句
但是这还远远不够 还是不能弹窗 因为你还得在js代码和url中间加上一个//才行
即
javascript:alert('xss')//http://www.baidu.com
这下总算彻底弹窗了 嗨嗨!!
去看看后台服务器代码
第一个输出点通过转义后直接插入
第二个输出点对一些关键字进行下划线恶意插入以及替换操作之后然后做了以下条件判断最后才插入到指定位置