一、什么是XSS
XSS全称(Cross Site Scripting)跨站脚本攻击,XSS属于客户端攻击,受害者最终是用户,但特别要注意的是网站管理人员也属于用户之一。这就意味着XSS可以进行“服务端”攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等操作,而攻击者一般也是靠管理员身份作为“跳板”进行实施攻击。 XSS攻击最终目的是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是javascript语言,但也会使用其它的脚本语言
二、XSS漏洞出现的原因
程序对输入和输出的控制不够严格,导致"精心构造“的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害
三、XSS的危害
1.劫持用户cookie
2.框架钓鱼
3.挂马
4.键盘记录
四、XSS分类
1.反射型XSS
交互的数据一般不会被存在在数据库里面,只是简单的把用户输入的数据反射给浏览器,一次性,所见即所得。
2.存储型XSS
交互的数据会被存在在数据库里面,永久性存储,具有很强的稳定性
3.DOM型XSS
不与后台服务器产生数据交互,通过前端的dom节点形成的XSS漏洞
五、XSS可能存在的地方
1.HTML context
2.Attribute Context
3.URL Context
4.Style Context
5.Script Context
六、XSS测试方法
APPscan、AWVS、Burpsuite 等
Burpsuite、firefox(hackbar)、XSSER XSSF等
手动:最重要的是考虑那里有输入,输入的数据在什么地方输出
七、同源策略
1.什么是跨域?
当协议、主机(主域名,子域名)、端口中的任意一个不相同时,称为不同域。我们把不同的域之间请求数据的操作,成为跨域操作。
2.什么是同源策略
为了安全考虑,所有浏览器都约定了“同源策略”,同源策略禁止页面加载或执行与自身来源不同的域的任何脚本既不同域之间不能使用JS进行操作。比如:x.com域名下的js不能操作y.com域名下的对象 那么为什么要有同源策略? 比如一个恶意网站的页面通过js嵌入了银行的登录页面(二者不同源),如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码。
3.哪些不受同源策略限制
(1)<script src="..."> //加载本地js执行
(2)<img src="..."> //图片
(3)<link href="..."> //css
(4)<iframe src="..."> //任意资源
4.同源策略修改
后台设置好Access-Control-Allow-Origin,设置为*,既允许所有人访问
八、XSS绕过
1.前端限制绕过
2.大小写混合
3.拼凑绕过
4.编码
5.注释干扰后台绕过
6.htmlspcialchars()函数
九、XSS常规防范
对输入进行过滤,对输出进行html实体编码
325

被折叠的 条评论
为什么被折叠?



