xss安全防御之href输出和js输出
1. xss之href输出
进行xss之href输出实验,代码审计可知,使用了
htmlspecialchars()函数,过滤掉了所有符号,输入一个url
这里我们可以输入
javascript:alert(111)(输入进行绕过)
点击下面的文字,反弹成功,实验成功。
2. xss之js输出
进行实验,代码审计可知
可知这里是填入的地方,可以进行构造绕过
我们输入
插入代码,实验成功。
这里补充一下
//这里如果进行html的实体编码,虽然可以解决XSS的问题,但是实体编码后的内容,在JS里面不会进行翻译,这样会导致前端的功能无法使用。
//所以在JS的输出点应该使用\对特殊字符进行转义(面试题)
if(isset($_GET[‘submit’]) && $_GET[‘message’] !=null){
j
s
v
a
r
=
jsvar=
jsvar=_GET[‘message’];
//
j
s
v
a
r
=
h
t
m
l
s
p
e
c
i
a
l
c
h
a
r
s
(
jsvar=htmlspecialchars(
jsvar=htmlspecialchars(_GET[‘message’],ENT_QUOTES);
if($jsvar == ‘tmac’){
KaTeX parse error: Expected '}', got 'EOF' at end of input: …l.="<img src='{PIKA_ROOT_DIR}assets/images/nbaplayer/tmac.jpeg’ />";
}
}
所以代码中经常会注释掉该htmlspecialchars()函数的应用。
总结
本次实验介绍了xss安全防御的方法和href输出和js输出的绕过方法,加深对xss漏洞的理解,学会利用xss去攻击和防御。