一、XSS攻击
1、什么是XSS?
XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生啦。
这里我们主要注意有四点:1.目标网站目标用户;2.浏览器;3.不被预期;4.脚本。
2、XSS有什么危害?
当我们知道了什么是XSS后,也一定很想知道它到底有什么用,或者有什么危害,如何防御。
关于XSS有关危害,我这里罗列2一段列表,详细介绍不进行更多的阐述:
·挂马
·盗窃用户Cookie
·DOS(拒绝服务)客户端浏览器
·钓鱼攻击,高级的钓鱼技巧
·删除目标文章,恶意篡改数据,嫁祸。
·挟持用户WEB行为,甚至进一步渗透内网。
·爆发WEB2.0蠕虫
·蠕虫式的DDOS攻击
·蠕虫式挂马攻击,刷广告,刷流量,破坏网上数据等
3、XSS分类
XSS有三类:反射性XSS(非持久性)、存储型XSS(持久型)和DOM XSS。
3.1、反射型XSS
发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后相应,XSS代码随相应内容一起传回到浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,所以叫做反射型XSS。
3.2、存储型XSS
存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在浏览器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码
最典型的例子是留言板XSS,用户提交一条包含XSS代码的留言存储到数据库,目标用户查看留言板时,那些留言的内容会从数据库查询出来并显示,浏览器发现有XSS代码,就当做正常的HTML与Js解析执行,于是触发了XSS攻击。
运行预期之外的脚本带来的后果有很多中,可能只是简单的恶作剧——一个关不掉的窗口:
while (true) {
alert("你关不掉我~");
}
3.3、DOM XSS
DOM XSS和反射型XSS、存储型XSS的差别在于DOM XSS的代码并不需要服务器参与,触发XSS靠的是浏览器端的DOM解析,完全是客户端的事情。
二、CSRF攻击
1、CSRF是什么?
CSRF(Gross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写CSRF/XSRF。
2、CSRF可以做什么?
你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗窃你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及产品安全。
3、CSRF漏洞现状
CSRF这种攻击方式在2000年已经在国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互网站分别爆出CSRF漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的BLOG网站),YouTube和百度HI...而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF为“沉睡的巨人”。
4、CSRF的原理
4.1、登录受信任的网站A,并在本地生成Cookie。
4.2、在不退出A的情况下,访问危险网站B。
看到这里,你也许会说:‘如果我不满足以上两个条件的其中一个,我就不会受到CSRF的攻击’。是的,确实如此,但你不能保证一下情况不会发生:
1、你不能保证你在登录一个网站后,不在打开一个tab页面并访问另外的网站。
2、你不能保证你关闭浏览器了后,你本地的Cookie立即过期,你上次的会话已经结束。(事实上关闭浏览器不一定能结束一个会话)
3、上图所谓的攻击网站,可能是一个存在其他漏洞的可信任的经常被人访问的网站。