PHPYun /uploads/member/ajax.class.php Vulnerabilidad de inyección SQL

PHPYun /uploads/member/ajax.class.php Vulnerabilidad de inyección SQL

Introducción al
sistema de gestión de talentos en la nube PHPYun PHP, un programa de código abierto del sistema de sitios web de reclutamiento profesional, un sistema eficiente de reclutamiento de talentos y empleos corporativos construido con PHP y la base de datos MySQL, puede satisfacer enormemente el programa del sitio web del webmaster bajo la premisa de respetar los derechos de autor Realizar desarrollo secundario.

Principio de vulnerabilidad Los
parámetros no se filtran y se incorporan directamente a la declaración SQL para su consulta, lo que genera vulnerabilidades de inyección.

Análisis de vulnerabilidad
Ver el archivo /uploads/member/ajax.class.php

function getzphcom_action(){
    
    

        if(!$_GET['jobid']){
    
    

            $arr['status']=0;

            $arr['content']=iconv("gbk","utf-8","您还没有职位,<a href='".Url("login",array(),"1")."'>请先登录</a>");

        }else{
    
    

            $row=$this->obj->DB_select_all("company_job","`id` in (".$_GET['jobid'].") and `uid`='".$this->uid."' and `r_status`<>'2' and `status`<>'1'","`name`");

            $space=$this->obj->DB_select_all("zhaopinhui_space");

            $zhaopinhui=$this->obj->DB_select_once("zhaopinhui","`id`='".intval($_GET['zid'])."'","`title`,`address`,`starttime`,`endtime`");

            $com=$this->obj->DB_select_once("zhaopinhui_com","`zid`='".intval($_GET['zid'])."' and `uid`='".$this->uid."'");

            foreach($row as $v){
    
    

                $data[]=$v['name'];

            }

            $spaces=array();

            foreach($space as $val){
    
    

                $spaces[$val['id']]=$val['name'];

            }

            $cname=@implode('、',$data);

            $arr['status']=1;

            $arr['content']=iconv("gbk","utf-8",$cname);

            $arr['title']=iconv("gbk","utf-8",$zhaopinhui['title']);

            $arr['address']=iconv("gbk","utf-8",$zhaopinhui['address']);

            $arr['starttime']=iconv("gbk","utf-8",$zhaopinhui['starttime']);

            $arr['endtime']=iconv("gbk","utf-8",$zhaopinhui['endtime']);

            $arr['sid']=iconv("gbk","utf-8",$spaces[$com['sid']]);

            $arr['bid']=iconv("gbk","utf-8",$spaces[$com['bid']]);

            $arr['cid']=iconv("gbk","utf-8",$spaces[$com['cid']]);

        }

        echo json_encode($arr);

    }

Analice el fragmento de código anterior:

$row=$this->obj->DB_select_all("company_job","`id` in (".$_GET['jobid'].") and `uid`='".$this->uid."' and `r_status`<>'2' and `status`<>'1'","`name`");

Puede ver que no hay filtrado para $ _GET ['jobid'].
Continúe con el seguimiento de la función DB_select_all () y verifique el archivo /uploads/app/public/action.class.php

function DB_select_all($tablename, $where = 1, $select = "*",$special='') {
    
    

        $cachename=$tablename.$where;

        if(!$row_return=$this->Memcache_set($cachename)){
    
    

            $row_return=array();

            if($this->siteadmindir&&$special==''){
    
    

                $where = $this->site_fetchsql($where,$tablename);

            }

            $SQL = "SELECT $select FROM `" . $this->def . $tablename . "` WHERE ".$where;

            $query=$this->db->query($SQL);

            while($row=$this->db->fetch_array($query)){
    
    $row_return[]=$row;}

            $this->Memcache_set($cachename,$row_return);

        }

        return $row_return;

    }

Se puede ver que todavía no hay filtrado en $ _GET ['jobid'],
por lo que la declaración SQL final detallada es

SELECT `name` FROM `phpyun_company_job` WHERE `id` in (可控) and `uid`='1' and `r_status`<>'2' and `status`<>'1'

Debido a que 360waf escapa de los parámetros recibidos, las comillas simples, las comillas dobles, los corchetes en inglés cambian los corchetes en chino, las palabras clave seleccionan, actualizan, eliminan, insertan, / ** /, estos serán interceptados por 360, por lo que puede usar Xor evita y ejecuta vulnerabilidades de inyección SQL

Supongo que te gusta

Origin blog.csdn.net/aasss12345/article/details/98471287
Recomendado
Clasificación