zoukankan      html  css  js  c++  java
  • 刚学习到CSRF——简要说下CSRF

    1.,CSRE全称是(Cross-site request forgery),中文名称:跨站请求伪造

    它可以看成是一种技术与艺术的结合
    既是社会工程学与软件技术的结合
    社会工程学-欺骗的艺术
    一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段。
    黑客行为成功的要素:
    高超的程序技巧
    不同寻常的耐心
    精通社会工程学
    2.CSRF关于使用社会工程学原理
    原理是揣测并利用用户心理,然后让用户主动把其身份标志泄露。
    再窃取用户标志。以代理人身份进行非法行为;
    3。CSRE 关于利用软件技术
    直白讲既是利用浏览器和服务器漏洞;
    假设我们想窃取用户支付宝或银行金额;
          做法1.假设一银行网站很垃圾(这是不可能的。哈哈)
    此银行接受数据方式是get或post 方式 
    当用户在我们网站交易后, 银行存在cookie。我们只需要在此网站
    页面上添加  <img src=银行网站?操作=11&金额=1000>
    嘿嘿,1000块钱很容易 


      做法2.窃取支付宝金额。多重提交表单


    我们可正常页面正常交易;然后稍微利用下用户心理
    页面 代码
       <div>
                    对方支付宝账号
                </div>
                <div >
                    付款金额
                </div>
                <div >
                    <input id="Amount" name="Amount" type="text" value="100" />
                </div>

                </div>
      <p>
                    <input type="submit" value="确定" />

                </p>

    页面代码2

     1         <script type="text/javascript">
     2             function pay() {
     3                 document.frames["frame"]
     4                   .document.getElementById("formPay").submit();
     5                
     6             }
     7 
     8         </script>
     9 
    10           <iframe src="chatPay.aspx" id="frame" name="frame"  style="0px; height:0px"></iframe><href="javascript:pay();">获取抽奖机会</a>

    11     </div> 

    通过表单的双重提交进行两次交易
    防御方法:建议用法对cookie 进行md5加密。然后像支付宝那样增加个第三方验证;

    还有图片验证 

    httpreferrer验证 


     
  • 相关阅读:
    使用servicename连接Oracle数据库
    使用SID连接Oracle数据库
    使用xlrd模块
    【Project Euler 8】Largest product in a series
    Git使用帮助
    【Project Euler 1】Multiples of 3 and 5
    VSCode使用新体验
    导出牛顿引力形式为平方反比的两种方式
    NOIP2018游记
    即将退役声明
  • 原文地址:https://www.cnblogs.com/zhang888/p/zhangguang2.html
Copyright © 2011-2022 走看看