驱动管家:安全、高效、精准的专业驱动下载站!

谈谈csrf的攻击原理 什么是csrf?

2018-01-18 13:30:58责编:llp   来源:驱动管家     人气:

 CSRF攻击原理解析 

Author: rayh4c [80sec]

EMail: rayh4c#80sec.com

Site: http://www.80sec.com

Date: 2008-9-21

0×00.前言

在Web程序中普通用户一般只在Web界面里完成他想要的操作,Web程序接受的正常客户端请求一般来自用户的点击链接和表单提交等行为,可是恶意攻击者却可以依靠脚本和浏览器的安全缺陷来劫持客户端会话、伪造客户端请求。

0×01.CSRF攻击分类

CSRF是伪造客户端请求的一种攻击,CSRF的英文全称是Cross Site Request Forgery,字面上的意思是跨站点伪造请求。这种攻击方式是国外的安全人员于2000年提出,国内直到06年初才被关注,早期我们团队的剑心使用过CSRF攻击实现了DVBBS后台的SQL注射,同时网上也出现过动易后台管理员添加的CSRF漏洞等,08年CSRF攻击方式开始在BLOG、SNS等大型社区类网站的脚本蠕虫中使用。

谈谈csrf的攻击原理 什么是csrf?

CSRF的定义是强迫受害者的浏览器向一个易受攻击的Web应用程序发送请求,最后达到攻击者所需要的操作行为。CSRF漏洞的攻击一般分为站内和站外两种类型:

CSRF站内类型的漏洞在一定程度上是由于程序员滥用$_REQUEST类变量造成的,一些敏感的操作本来是要求用户从表单提交发起POST请求传参给程序,但是由于使用了$_REQUEST等变量,程序也接收GET请求传参,这样就给攻击者使用CSRF攻击创造了条件,一般攻击者只要把预测好的请求参数放在站内一个贴子或者留言的图片链接里,受害者浏览了这样的页面就会被强迫发起请求。

CSRF站外类型的漏洞其实就是传统意义上的外部提交数据问题,一般程序员会考虑给一些留言评论等的表单加上水印以防止SPAM问题,但是为了用户的体验性,一些操作可能没有做任何限制,所以攻击者可以先预测好请求的参数,在站外的Web页面里编写javascript脚本伪造文件请求或和自动提交的表单来实现GET、POST请求,用户在会话状态下点击链接访问站外的Web页面,客户端就被强迫发起请求。

0×02.浏览器的安全缺陷

现在的Web应用程序几乎都是使用Cookie来识别用户身份以及保存会话状态,但是所有的浏览器在最初加入Cookie功能时并没有考虑安全因素,从WEB页面产生的文件请求都会带上COOKIE,如下图所示,Web页面中的一个正常的图片所产生的请求也会带上COOKIE:

 

GET /Article/UploadFiles/200809/20080922055213222.jpg

Cookie: session_id

客户端 ——————————————————-服务器

浏览器的这种安全缺陷给CSRF漏洞的攻击创造了最基本的条件,因为Web页面中的任意文件请求都会带上COOKIE,所以我们将文件地址替换为一个链接的话,用户访问Web页面就相当于会话状态下自动点击了链接,而且带有SRC属性具有文件请求的HTML标签,如图片、FLASH、音乐等相关的应用都会产生伪造GET请求的CSRF安全问题。一个web应用程序可能会因为最基本的渲染页面的HTML标签应用,而导致程序里所有的GET类型传参都不可靠。

0×03.浏览器的会话安全特性

参照Set-Cookie的标准格式,现今浏览器支持的cookie实际上分为两种形式:

Set-Cookie:=[;=] [; expires=][; domain=] [; path=][; secure][; HttpOnly]

一种是内存COOKIE,在没有设定COOKIE值的expires参数,也就是没有设置COOKIE的失效时间情况下,这个COOKIE在关闭浏览器后将失效,并且不会保存在本地。另外一种是本地保存COOKIE,也就是设置了expires参数,COOKIE的值指定了失效时间,那么这个COOKIE会保存在本地,关闭浏览器后再访问网站,在COOKIE有效时间内所有的请求都会带上这个本地保存COOKIE。

Internet Explorer有一个隐私报告功能,其实这是一个安全功能,它会阻挡所有的第三方COOKIE,比如A域Web页面嵌入了B域的文件,客户端浏览器访问了A域的Web页面后对B域所发起的文件请求所带上的COOKIE会被IE拦截。除开文件请求情况,A域的Web页面如果使用IFRAME帧包含B域的Web页面,访问A域的Web页面后,B域的Web页面里的所有请求包括文件请求带上的COOKIE同样会被IE拦截。不过Internet Explorer的这个安全功能有两个特性,一是不会拦截内存COOKIE,二是在网站设置了P3P头的情况下,会允许跨域访问COOKIE,隐私报告功能就不会起作用了。

所以在Internet Explorer的这个安全特性的前提下,攻击者要进行站外的CSRF攻击使用文件请求来伪造GET请求的话,受害者必须在使用内存COOKIE也就是没有保存登陆的会话状态下才可能成功。而Firefox浏览器并没有考虑使用这样的功能,站外的CSRF攻击完全没有限制。

0×04.关于Javascript劫持技术

近年来的web程序频繁使用Ajax技术,JSON也开始取代XML做为AJAX的数据传输格式,JSON实际上就是一段javascript,大部分都是定义的数组格式。fortify公司的三位安全人员在2007年提出了Javascript劫持技术,这是一种针对JSON动态数据的攻击方式,实际上这也是一种变相的CSRF攻击。攻击者从站外调用一个script标签包含站内的一个JSON动态数据接口,因为


  • 你知道网站安全测试的工具awvs的使用方法吗?

    你知道网站安全测试的工具awvs的使用方法吗?

    一、打开应用1、打开应用,出现如图所示界面:二、创建一个新的测试项目这里以CSDN为例:1 点击File –> New –> Web Site Scan或者工具栏上的“New Scan”打开创建页面,如下图:2 填写需

    详情2018-01-16 17:30:30责编:llp   来源:驱动管家     
  • rar密码破解实例 怎么破解一个使用rar加密的文件?

    rar密码破解实例 怎么破解一个使用rar加密的文件?

    对于一些安全意识比较强的人来说,一般都会对文件进行加密,例如使用rar自带的加密功能进行加密,如果偶然获取了这种rar加密文件,人的好奇心肯定会促使获取资料的人去打开这些加密文件。当然网上也有很多提供资

    详情2018-01-14 15:01:36责编:llp   来源:驱动管家     
  • oracle数据库学习 谈谈入侵oracle数据库的体会

    oracle数据库学习 谈谈入侵oracle数据库的体会

    一、先看下面的一个贴子:Oracle数据库是现在很流行的数据库系统,很多大型网站都采用Oracle,它之所以倍受用户喜爱是因为它有以下突出的特点:1、支持大数据库、多用户的高性能的事务处理。Oracle支持最大数据库

    详情2018-01-11 16:24:29责编:llp   来源:驱动管家     
  • 网络安全密钥 怎么获取密钥生成算法?

    网络安全密钥 怎么获取密钥生成算法?

    从拷贝保护产品中剥取(ripping)算法通常是创建密钥生成程序的一种简单而行之有效的方法。其思路非常简单:定位受保护程序内计算合法序列号的函数(可能不止一个函数),并将它(们)移植到你密钥生成程序中。这

    详情2018-01-13 17:21:44责编:llp   来源:驱动管家     
  • 什么是dns欺骗攻击?dns欺骗攻击怎么防范?

    什么是dns欺骗攻击?dns欺骗攻击怎么防范?

    你是否遭遇过这样的情况?当你在浏览器中输入正确的URL地址,但是打开的并不是你想要去的网站。它可能是114的查询页面,可能是一个广告页面,更可能是一个刷流量的页面,甚至是一个挂马的网站。如果你遇到了上述情况话,那么极有可能你遭遇了DNS欺骗。

    详情2018-01-13 12:29:36责编:llp   来源:驱动管家     
  • 微软ie浏览器的脚本错误导致破坏漏洞出现

    微软ie浏览器的脚本错误导致破坏漏洞出现

    发布日期:2007-10-09 更新日期:2007-10-10 受影响系统: Microsoft Internet Explorer 7 0 Microsoft Internet Explorer 6 0 SP1 Microsoft Internet Explorer 6 0 Microsoft Internet Explorer 5 0 1 SP4 描述: ----------------------------

    详情2018-01-10 12:22:18责编:llp   来源:驱动管家     
  • 怎么查证你的浏览器存在ie漏洞?

    怎么查证你的浏览器存在ie漏洞?

    JavaScript IE 6 漏洞   其利用代码如下: <script type= "text jscript "> function init() { document write( "The time is: " Date() ); } window onload = init; < script>  利用此代码可

    详情2018-01-10 09:59:11责编:llp   来源:驱动管家     
  • microsoft excel内存破坏、执行任意指令怎么办?

    microsoft excel内存破坏、执行任意指令怎么办?

    受影响系统: Microsoft Excel Viewer 2003 Microsoft Excel 2007 Microsoft Excel 2003 SP2 Microsoft Excel 2002 SP3 Microsoft Excel 2000 SP3 Microsoft Office 2004 for Mac 描述: ------------------------------------------------------

    详情2018-01-10 14:59:53责编:llp   来源:驱动管家     
  • u盘加密被破解的原理 为什么u盘加密简单被破解?

    u盘加密被破解的原理 为什么u盘加密简单被破解?

    使用U盘、移动硬盘加密工具加密文件夹后,我用文件嗅探器工具也看不到加密后真实的文件,当用金山毒霸扫描发现,好像这些文件被隐藏保存在 Thumbs dn 7 中(其中那个7 中的7有时是其他的数字),但是我直接这样

    详情2018-01-05 19:32:16责编:llp   来源:驱动管家     
  • 加密文件系统efs怎么加密文件?efs怎么解密?

    加密文件系统efs怎么加密文件?efs怎么解密?

    经常看到对文件和文件夹加密的文章,大多是安装各种软件来实现的,如果你的系统是WinXP Win2003 2000,就没有必要如此兴师动众地加密了,既不需要你安装软件,也不需要繁琐的操作,因为Windows本身就集成了EFS(En

    详情2018-01-11 13:35:09责编:llp   来源:驱动管家