Cross Site Request Forgery (CSRF)--medium

本文深入探讨了CSRF攻击的原理,解释了HTTP_REFERER和eregi的作用,并提供了实现CSRF攻击的方法。同时,附上了CSRF攻击的详细介绍,帮助读者理解其危险性和防范策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 <?php
            
    if (isset($_GET['Change'])) {
    
        // Checks the http referer header
        if ( eregi ( "127.0.0.1", $_SERVER['HTTP_REFERER'] ) ){
    
            // 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>";            
            }    

        }
        
    }
?> 


这里面有这么一句话

 if ( eregi ( "127.0.0.1", $_SERVER['HTTP_REFERER'] ) ){

HTTP REFERER的作用告诉服务器我是从哪个页面链接过来的。
而eregi的作用就是对两个字符串比对匹配,匹配成功就返回true
这里就表示我是从服务器本地发来的http包

所以 显而易见 我们要做的就是  截获我们本地浏览器的http请求包,然后将referer部分改成 127.0.0.1  这样就可以成功突破 实现CSRF。


附上一段对CSRF的介绍:

CSRF(Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值