CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

网络安全,安全,网络安全设备,信息安全产品,网络安全新闻,信息安全市场分析,黑客攻防,防黑反黑技巧,黑客,网络安全技术,网络安全方案,病毒播报,最新病毒库,攻防技巧,入侵渗透,新闻,思科,Juniper,天融信,瑞星,金山,江民,卡巴斯基,赛门铁克, 趋势,绿盟科技,联想网御,MCAFEE,安氏,冰峰网络,网络入侵,木马,病毒,病毒分析,木马分析,样本分析,木马样本分析,病毒样本分析,杀毒软件

您现在的位置: IT专家网 > 安全子站 > 安全技巧

探讨:旁注保护跨站脚本请求欺骗(CSRF)

作者: superhei,  出处:ph4nt0m.org, 责任编辑: 张帅, 
2008-01-17 13:36
  CSRF(Cross-site Request Forgery,跨站请求欺骗 )在过去的n年(n>2)一直都火,然而CSRF是很难彻底防止的,下面我的一些Bypass Preventing(旁注) CSRF的技巧……

  CSRF(Cross-site Request Forgery,跨站请求欺骗 )在过去的n年(n>2)一直都火,在bh/defcon/owasp等会议上多次探讨CSRF的攻防。前段时间PLAYHACK.net上发表了一个总结性的:Preventing CSRF,然而CSRF是很难彻底防止的,下面我的一些Bypass Preventing(旁注) CSRF的技巧:

  0x01.HTTP Referer

  其实国内的CSRF攻击由来已久了,比如n年前的各大下载网站防止盗链,n前dvbbs的一个xss利用了csrf提升权限等等.在下载网站防止盗链的过程中很多就使用了通过判断HTTP Referer来限制,但是这样的Prevent很容易就被绕过了.

  0x01a.Attack From Inside

  很多人都忽律了从site'内部'的攻击.

  1.很多的web app都支持link/img等标签,然而通过这些标签访问的url的Referer都是本站的,所以攻击者只要在你的bbs 或者blog等上通过那些标签发一个你构造好的url,然后就是引诱admin了 :)

  2.ie有很多特点如:txt/图片等里面的html/js会被执行,当年你可以通过上传你的构造的代码...[注意这里txt里js执行的domain和txt是同一个]

  0x01b.伪造http header

  1.客户端脚本:

  a.js

  XMLhttp.setRequestHeader() 但是xmlhttp不可以跨区域[当然你可以利用0x01a.2里的方式上传],所以一般的是要结合xss.

  b.as

  * XML.addRequestHeader()

  * LoadVars.addRequestHeader() as里直接设置Header是有一些限制的,比如 .addRequestHeader("Refere", "AAA"); 这样是不行的.Rapid7在06年发布了一个可以绕过的巧妙方法: .addRequestHeader("Referer:http://anywhere\r\nX-foo", "bar"); 直接放到第1个参数. 这个bug已经被Adobe fix了,但是在htm调用swf时swf可以使用任意后缀,我们同样可以利用类似0x01a.2里的方法一样把swf上传[具体可以参考《Discuz!/phpwind flash标签的xss》]

  2.服务端脚本:

  基本上所有的服务端语言都有发http包的功能,如php的fsockopen(),asp的xmlhttp等等,所以可以通过外面服务端脚本来伪造一个Referer[其实就是类似于nc] 这个一般只对于单纯的限制Referer而且没有身份验证的[因为你cookie没办法传递],所以这个基本可以YY的.

  0x02.Hidden value

  之所以用'Hidden value'做标题,是因为PLAYHACK文中写 '0x03a: Cookies Hashing' 和'0x04: One-Time Tokens'里产生的hash都是通过hidden value来传递.但是我们一样可以通过一些手段得到这个hash.

  0x02a.利用xss执行js-xmlhttp在xmlhttp.responseText里得到hash:

xmlhttp.open("GET", siteurl+"admincp.php?action=members", false);
xmlhttp.send();
var echo = xmlhttp.responseText;
var reg = /\<input type=\"hidden\" name=\"formhash\" value=\"([\w\d]+)\">/i;
var arr=reg.exec(echo);
var formhash=arr[1];

      0x02b.利用as里的xml.onData/LoadVars等得到hash:

import RegExp;
var xml:XML = new XML();
xml.onData = function(s) {
    tb1.text = getFirstMatch(new RegExp("<input type=\"hidden\" name=\"formhash\" id=\"formhash\" value=\"(\\w+)\">", "ig"), s, 1);
}
xml.load(url+"post.htm");
function getFirstMatch(re, s, i) {
    var m = null;
    if ((m = re.exec(s)) != null) {
        return m[i];
    }
}
共2页。 1 2 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    • 解析如何实现自动化的IT安全合规管理评论
      能够解决企业IT、审计和运作团队共同问题的方法一直是企业IT管理者所迫切希望的,自动化的企业合规管理将会及时的发现并掌控企业实际存在的各种问题。
    • 视频讲解:MS Windows系统安全评论
      本文将由7all为IT专家网用户讲解MS Windows操作系统。
    • 浅谈逆向工程在网络安全研究中的运用评论
      从某种程度上来说,计算机软件的逆向工程技术主要过程为分析计算机程序,在分析计算机程序的过程中,逐渐建立起高于源代码级别的更抽象层次的程序运行过程。
    • 评估Vista内核模式的安全性评论
      Windows Vista与之前的MS Windows版本(包括Windows XP SP2)相比增加了很多的安全性。Vista新安全性的特征可以包括驱动签名、PatchGuard、内核模式代码完整性检查等。

天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i