CSRF学习报告

0x01

CSRF攻击方式

一:HTML csrf攻击:

  1. 利用HTML元素发出GET请求
    带src属性的html标签都可以跨域发起GET请求
  • <link href="…">
  • <img src="…">
  • <iframe src="…">
  • <meta http-equiv="refresh" content="0; url=…">
  • <script src="…">
  • <video src="…">
  • <audio src="…">
  • <a href="…">
  • <table background="…">....................
  1. POST请求攻击
    需用表单提交方式,标签可由js动态生成
    <script>
    new Image().src = 'http://www.goal.com/…';
    </script>

二. JSON Hijacking攻击

JSONP:是Web前端的JavaScript跨域获取数据的一种方式。
基本原理是利用了 HTML 里 <script></script> 元素标签,远程调用 JSON 文件来实现数据传递。如要在 a.com 域下获取存在 b.com 的 JSON 数据

当用户通过身份认证之后,前端会通过jsonp的方式从服务端获取该用户的隐私数据,然后在前端进行一些处理,如个性化显示等,这个jsonp的调用接口如果没有做相应的防护,就容易受到JSON劫持攻击
条件:这个JSON劫持漏洞需要你暴露出JSON服务(指JSON服务地址被攻击者知道)并且进行如下操作:

  • 返回敏感的数据
  • 返回一个JSON数组
  • 响应一个GET请求
  • 发送请求的浏览器启用了JavaScript(很有可能)
  • 发送请求的浏览器支持defineSetter方法

关于某些情形下的绕过

  • 有种防御方案是验证json文件调用的来(referer),主要利用了 <script> 远程加载 JSON 文件时会发送 Referer ,在网站输出 JSON 数据时判断 Referer 是不是白名单合法的就可以进行防御。
  1. Referer过滤不严谨以及空Rerferer
    空情形:通过跨协议调用js时发送到http请求里为空referer eg:



    可使用<iframe>调用js伪协议来实现空referer

  2. 随机token:某些token可以暴力循环破解
  • 更多的是组合攻击 callback可定义导致安全问题
  1. Content-Type 与xss漏洞

    callback未进行过滤

    直接就能导致xss漏洞

0x02

实例:

一:利用html元素发出get请求

以DVWA(medium)为例:
在用户登路状态下可更改密码,进行修改操作时还检测了referer参数,抓包在referer参数中可发现ip地址(这里是本地),在构造csrf网页时所包含的referer信息包含被攻击ip


构造网页

引诱自己访问=-=便可成功修改掉密码

二:复现:POST(phpok4.2.100添加管理员)

本地部署了phpok后进入后台可查看编辑管理员:



编辑网页



在管理员登录的状态下诱导其访问该页面

成功添加一名管理员
之后使用添加的系统管理员身份登录后台,风格管理中添加模板文件



抓包修改后缀为.php上传成功,并且页面显示了文件夹路径

在后台找到文件并编辑成木马文件即可getshell

0x03

关于防御

  • 验证Referer;

有些请求不需要referer

  • 使用验证码;

影响用户体验

  • 使用CSRF token;

随机性不够好或通过各种方式泄露,此外,在大型的服务中需要一台token生成及校验的专用服务器,需要更改所有表单添加的字段,有时效性的问题。

  • 限制Session生命周期。

缓解csrf。只是降低csrf攻击成功率

  • 一个看不懂的新方法。

当表单提交时,用JavaScript在本域添加一个临时的Cookie字段,并将过期时间设为1秒之后在提交,服务端校验有这个字段即放行,没有则认为是CSRF攻击。
token之所以可以防御CSRF,是因为攻击者无法使用JavaScript获取外域页面中的token值,必须要遵守同源策略;而临时Cookie的原理是:Cookie只能在父域和子域之间设置,也遵守同源策略,攻击者无法设置该Cookie

eg:复现的简单demo:

前端

前端test.html页面中有三个按钮:第一个是正常的表单提交;第二个是添加临时Cookie后提交表单;第三个是以hook submit事件来添加临时Cookie并提交

服务端

执行normal看到只有xampp设置的一个cookie

而执行后两个,则可看到添加的临时cookie

但由于这种防御策略还没有被大规模使用,所以无法确定其是否真实有效。所以我也不去研究啦

JSON HIJACKING的防御:

1、限制 Referer 、部署一次性 Token 等。
2、按照JSON 格式标准输出 Content-Type 及编码( Content-Type : application/json; charset=utf-8 )。
3、过滤 callback 函数名及 JSON 里数据的输出。
4、限制对 JSONP 输出 callback 函数名的长度
5、在 Callback 输出之前加入其他字符(如:/**/、回车换行)这样不影响 JSON 文件加载,又能一定程度预防其他文件格式的输出。
以及 Gmail 早起使用 AJAX 的方式获取 JSON ,听过在输出 JSON 之前加入 while(1) ;这样的代码来防止 JS 远程调用。

0x04

CSRF蠕虫

基于它的传播性,需要获取每个用户的请求参数数据

  1. 利用服务端脚本
  2. json 劫持
    啊这个我还不知道怎么复现,还得学习学习=-=

0x05

Flash与Actionscript一点点问题

有一个通常在网站根目录存在的文件crossdomain.xml。
该配置文件中的“allow-access-from domain”用来配置哪些域的Flash请求可以访问本域的资源。如果该项值为“*”,则表示任何与的Flash都可以访问。当存在这样的配置时,攻击者可以利用ActionScript脚本轻松突破同源策略的限制。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容

  • http://www.91ri.org/tag/fuzz-bug 通常情况下,有三种方法被广泛用来防御CSRF攻击...
    jdyzm阅读 4,151评论 0 5
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,347评论 1 45
  • CSRF & CORS 下面转的两篇文章分别说明了以下两个概念和一些解决方法: 1. CSRF - Cross-S...
    Elvis_zhou阅读 674评论 0 4
  • 百度百科中的CSRF CSRF(Cross-site request forgery)跨站请求伪造,也被称为“On...
    Smi1e_阅读 3,628评论 1 9
  • CSRF定义 CSRF,即(Cross-site request forgery), 中文名为跨站请求伪造。是一种...
    Yixi_Li阅读 449评论 0 1