Xss多种姿势

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_19683651/article/details/79606418

xss攻击

字符编码

firefox下某参数为%c1\"alert(/xss/)
var username="";alert(/xss/)

绕过长度限制

location.hash

http://www.test.com#alert()
onclick='eval(location.hash.substr(1))

注释

多个input把中间注释><!--   -->

base标签

<base href="https://www.baidu.com"/>
<base target="_blank" />
<img src='test/img.jpg'/>

window.name

window.name存储payload,eval实现执行
window.name="alert(1)"
eval(name);

flash xss和 js框架poc也是很有参考价值的。

xss防御

httpOnly

禁止js访问带有httpOnly属性的cookie

java ee

response.setHeader("Set-Cookie"),"cookiename=value;Path=/;Domain=domainvalue;Max-Age=seconds;HttpOnly");

c#

HttpCookie mycookie=new HttpCookie("myCookie");
mycookie.HttpOnly=true;
Response.AppendCookie(mycookie);

php5

setcookie("abc","test",NULL,NULL,NULL,NULL,TRUE);

需要注意的是Apache服务器header的TRACE

输入检查

特殊字符输入检查,xss filter

输出检查

编码或转义

编码

可以参考owasp中esapi的Html Encode,JavaScript Encode
python的web2py框架
encodeURI等

富文本

对于<a><img><div>等安全标签使用白名单,对于<iframe><script><base><form>等应当严格禁止。

防止dom based xss

需要注意这些函数

document.write()
document.writeln()
XXX.innerHTML=
XXX.outerHTML=
innerHTML.replace()
document.attachEvent()
windows.attachEvent()
document.location.replace()
document.location.assign()
......

猜你喜欢

转载自blog.csdn.net/qq_19683651/article/details/79606418
xss