XSS跨站脚本攻击
1.什么是cookie?
浏览器免登录
HTTP请求方式
HTTP特点
请求应答模式
灵活可扩展
可靠传输:处于应用层有tcp
无状态:每个请求都是独立的,需要保持会话
cookie内容
key/value格式(键值对格式), 例如:
name=wuya
id=99
islogin=1
cookie怎么产生
第一次访问时,浏览器向服务器发送request请求,服务器识别之后response应答,把键值对返回给浏览器,客户端接收到了cookie时进行保存,在之后的客户端访问服务器时,需要在请求中添加提供cookie表明身份
cookie格式
Set-Cookie:第一次访问,服务器响应给客户端
Cookie:之后的访问,客户端发送给服务器
(第一次访问时服务器下发的cookie)
Set-Cookie格式(一个cookie)
Cookie特点
1.明文
2.可修改
3.大小受限(视浏览器而定)
2.cookie是如何被窃取的?
Cookie的用途
1.记住密码(个别浏览器的安全退出本质上就是删除本地的cookie文件)
2.跟踪用户行为(某些记住密码等行为就是客户端点击,使得服务端生成session)
cookie保存在客户端,session保存在服务端;
只要拿到cookie就可以无账号密码的情况下登陆
重要的是如何远程拿到cookie
JavaScript语法
获取:document.cookie;
设置:document.cookie="username=wuya";
修改:
删除:
在post请求中在输入文本框中注入js代码可以执行
在get请求中,在url中注入js代码也可以执行
3.XSS的主要类型?
XSS:Cross Site Script
恶意攻击者利用web页面的漏洞,插入一些恶意代码,当用户访问页面的时候,代码就会执行,这个时候就达到了攻击的目的。
Javascript、Java、VBScript、ActiveX、Flash
反射型:非持久性的,一般为get请求
流程如图:
存储型:与反射型XSS不同,由于存储型XSS可以随评论等一同存入服务器,因此可以被持续触发利用。而在获得cookie这块二者原理大致相当,都是将cookie拼接到受攻击者控制的域名中,然后通过查看DNS日志的方式获得cookie,最后修改请求包中的cookie达到冒充受害用户的目的。
XSS危害
1.冒充身份
2.刷点击
3.弹广告
4.传播蠕虫病毒
4.如何防止XSS漏洞?
过滤
输入:
通过正则表达式匹配恶意脚本
1.识别恶意脚本,定义恶意脚本的格式
2.对脚本的各种变形也要识别
<script <Script
处理: “ ” <sc_ript
规则引擎:
WAF:web应用防火墙
输出:
HTML JS
转义<> 、 " 、 ' 、 %
echo
今日作业
存储型XSS攻击发实现流程是什么样子的???