DVWA学习-CSRF-Level Low

 Cross Site Request Forgery (CSRF)

译作跨站请求伪造

这个实验都不需要做了,因为只要更改一下密码就能很容易看到该实验将会有多么的简单,修改密码的请求是通过GET方法提交的,因此,简单的不能再简单了,不具体说了

DVWA-CSRF

 

<?php 
                 
    if (isset($_GET['Change'])) { 
     
        // Turn requests into variables 
        $pass_new = $_GET['password_new']; 
        $pass_conf = $_GET['password_conf']; 


        if (($pass_new == $pass_conf)){ 
            $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>' ); 
                         
            echo "<pre> Password Changed </pre>";         
            mysql_close(); 
        } 
     
        else{         
            echo "<pre> Passwords did not match. </pre>";             
        } 

    } 
?>

此处的代码非常简单易懂,同时可以分析到,UPDATE处将参数直接代入到了SQL语句中,同样存在漏洞,可以构造SQL语句修改任何人的密码。

"UPDATE `users` SET password = '$pass_new' WHERE user = 'admin'

将上面的代码修改为

"UPDATE `users` SET password = '123' where user='root'#' WHERE user = 'admin'

即,密码为 123′ where user=’root’#,这样就可以修改root用户的口令了,这个没有测试,因为系统里只有一个admin账号,理论可行。