zoukankan      html  css  js  c++  java
  • CSRF学习笔记之CSRF的攻击与防御以及审计【00x3】

    Hight.php完整代码如下:

    <?php
                
        if (isset($_GET['Change'])) {
        
            // Turn requests into variables
            $pass_curr = $_GET['password_current'];
            $pass_new = $_GET['password_new'];
            $pass_conf = $_GET['password_conf'];
    
            // Sanitise current password input
            $pass_curr = stripslashes( $pass_curr );
            $pass_curr = mysql_real_escape_string( $pass_curr );
            $pass_curr = md5( $pass_curr );
            
            // Check that the current password is correct
            $qry = "SELECT password FROM `users` WHERE user='admin' AND password='$pass_curr';";
            $result = mysql_query($qry) or die('<pre>' . mysql_error() . '</pre>' );
    
            if (($pass_new == $pass_conf) && ( $result && mysql_num_rows( $result ) == 1 )){
                $pass_new = mysql_real_escape_string($pass_new);
                $pass_new = md5($pass_new);
    
                $insert="UPDATE `users` SET password = '$pass_new' WHERE user = 'admin';";
                $result=mysql_query($insert) or die('<pre>' . mysql_error() . '</pre>' );
                            
                $html .= "<pre> Password Changed </pre>";        
                mysql_close();
            }
        
            else{        
                $html .= "<pre> Passwords did not match or current password incorrect. </pre>";            
            }
    
        }
    ?>
    View Code

    我们来看看这次他是如何防御CSRF漏洞的。

    这次要输入原先的密码然后才可以输入新的密码。

    这个属于二次验证。这个是相对现在预防csrf较为有效行之有效的预防措施。这个关卡应该是没办法绕过的。如果大家可以绕过,分享分享姿势哈。

  • 相关阅读:
    css的书写位置+元素分类
    选择器
    我的js运动库新
    js的相关距离
    关于小乌龟的使用
    linux 基础
    linux shell快捷操作【超级实用】
    算法面试常见问题【转】
    http://www.cnblogs.com/zhangchaoyang/archive/2012/08/28/2660929.html
    cocos2dx + vs安装使用
  • 原文地址:https://www.cnblogs.com/xishaonian/p/6540023.html
Copyright © 2011-2022 走看看