CSRF学习笔记之CSRF的攻击与防御以及审计00x3

Posted 可我浪费着我寒冷的年华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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较为有效行之有效的预防措施。这个关卡应该是没办法绕过的。如果大家可以绕过,分享分享姿势哈。

以上是关于CSRF学习笔记之CSRF的攻击与防御以及审计00x3的主要内容,如果未能解决你的问题,请参考以下文章

六十五:CSRF攻击与防御之CSRF防御之form表单防御

前端Web前端安全策略之CSRF的攻击与防御

六十六:CSRF攻击与防御之CSRF防御之ajax防御和ajax封装

Web前端安全策略之CSRF的攻击与防御

技术干货 | CSRF攻击原理以及防御

六十三:CSRF攻击与防御之系统准备之登录与转账功能