欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

CSRF漏洞测试

程序员文章站 2023-11-11 08:12:52
csrf 测试 csrf中文名:跨站请求伪造,英文译为:cross-site request forgery,csrf攻击就是attacker(攻击者)利用victim(受害者)尚未失效的身份认证信...

csrf 测试

csrf中文名:跨站请求伪造,英文译为:cross-site request forgery,csrf攻击就是attacker(攻击者)利用victim(受害者)尚未失效的身份认证信息(cookie、session等),以某种方式诱骗victim点击attacker精心制作的恶意链接或者访问包含恶意攻击代码的页面,当victim触发成功之后,恶意代码会被执行,默默的向目标service发出请求加载着victim尚未失效的身份认证信息,导致victim替attacker完成了非法操作比如:在某些上发布大量的恶意言论、网站用户密码被恶意篡改、账户金额被盗取、删除网站个人信息~~~~~

漏洞测试:

通过dvwa平台,对csrf漏洞进行测试,让大家走进csrf的世界

环境:dvwa服务ip :192.168.43.146

attacker服务ip :192.168.43.150

low level

查看:

prepare( 'select password from users where user = (:user) and password = (:password) limit 1;' );
    $data->bindparam( ':user', dvwacurrentuser(), pdo::param_str );
    $data->bindparam( ':password', $pass_curr, pdo::param_str );
    $data->execute();

    // do both new passwords match and does the current password match the user
    if( ( $pass_new == $pass_conf ) && ( $data->rowcount() == 1 ) ) {
        // it does!
        $pass_new = stripslashes( $pass_new );
        $pass_new = ((isset($globals["___mysqli_ston"]) && is_object($globals["___mysqli_ston"]))  mysqli_real_escape_string($globals["___mysqli_ston"],  $pass_new ) : ((trigger_error("[mysqlconvertertoo] fix the mysql_escape_string() call! this code does not work.", e_user_error))  "" : ""));
        $pass_new = md5( $pass_new );

        // update database with new password
        $data = $db->prepare( 'update users set password = (:password) where user = (:user);' );
        $data->bindparam( ':password', $pass_new, pdo::param_str );
        $data->bindparam( ':user', dvwacurrentuser(), pdo::param_str );
        $data->execute();

        // feedback for the user
        echo "
password changed.
"; } else { // issue with passwords matching echo "
passwords did not match or current password incorrect.
"; } } // generate anti-csrf token generatesessiontoken(); >

代码审计发现:用户修改网站密码不仅需要user_token的验证还需要用户输入当前密码进行验证,因此,attacker不能对用户进行csrf攻击

总结:

学过csrf和xss之后,你可能会有疑惑,它们两个一样吗,不用多说,相信大家看名字就知道不一样

csrf攻击是直接利用用户尚未失效的cookie,并伪造特殊的请求对用户造成危害的一种攻击手段

xss攻击是直接盗取用户的cookie,所造成的一种攻击手段

两者看似相似,当又有一些不一样的地方