好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

KingCmsSQL注入加+代码执行 - 网站安全 - 自学php

详细说明: function kc_pageLoad(){  if (KC_MAGIC_QUOTES_GPC){   $_GET=kc_stripslashes_array($_GET);   $_POST=kc_stripslashes_array($_POST);   $_COOKIE=kc_stripslashes_array($_COOKIE);   $array=array('PHP_SELF','SCRIPT_URI','QUERY_STRING','PATH_INFO','PATH_TRANSLATED');   foreach($array as $val){    if(isset($_SERVER[$val]))     $_SERVER[$val]=htmlspecialchars($_SERVER[$val]);                                 //这里程序员考虑到了跨站的问题                            例如:我们提交一个 fuca.php/"><script>alert(/Samy/)</script>                               就导致一个反射型XSS     }  }

 //设置ismethod值 true:post ; false:get  $ismethod=kc_post('METHOD') ? True : False;  $GLOBALS['ismethod']=!($_SERVER['REQUEST_METHOD']=='GET' || $ismethod); }

HdhCmsTest2cto测试数据 function kc_stripslashes_array(&$_data){  if (is_array($_data)){   foreach ($_data as $_key => $_value){    $_data[$_key]=kc_stripslashes_array($_value);   }   return $_data;  }else{   return stripslashes($_data);  } } decode addslashes 呵

程序在去掉转义字符的同时.也为我们的注入带来方便

因此程序员也写了一个函数 来获取GET 和 POST数组的值 并调用kc_validate

用正则表达式来匹配我们提交的值:

function kc_get($name,$type=2,$is=0){  global $king;

 $val=isset($_GET[$name]) ? $_GET[$name] :'';  if(!isset($val{0}))   $val=isset($_POST[$name]) ? $_POST[$name] : '';  if(isset($val{0})){   if(kc_validate($val,$type)){    $_getid=$val;   }else{    kc_error($king->lang->get                  略....

kc_validate

function kc_validate($s,$_type){  switch($_type){   case 1:$_reg='/^[a-zA-Z0-9]+$/';break;   case 2:$_reg='/^[0-9]+$/';break;   case 3:$_reg='/^([0-9\.]+\,?)+$/';break;   case 4:$_reg='/^[A-Za-z0-9\_]+$/';break;   case 5:    $_reg='/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/';break;   case 6:    //$_reg='/^(http|https|ftp):(\/\/|\\\\)(([\w\/\\\+\-~`@:%])+\.)+([\w\/\.\=\?\+\-~`@\:!%#]|(&)|&)+/';    $_reg='/^[a-zA-Z]{3,10}:\/\/[^\s]+$/';    break;   case 7:    global $king; //   $_bool=in_array(kc_f_ext($s),explode('|',$king->config('upimg'))); //   retrun $_bool;    $_reg='/^([a-zA-Z]{3,10}:\/\/)?[^\s]+\.('.$king->config('upimg').')$/';    //$_reg='/^((http|https|ftp):(\/\/|\\\\)(([\w\/\\\+\-~`@:%])+\.)+([\w\/\.\=\?\+\-~`@\:!%#]|(&)|&)+|([\w\/\\\.\=\?\+\-~`@\':!%#]|(&)|&)+)\.('.$king->config('upimg').')$/';    break;//jpeg|jpg|gif|png|bmp   case 8:    $_reg='/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/';break;   case 9:    $_reg='/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$/';break;   case 10:$_reg='/^\d?\.\d?\.\d{4}$/';break;   case 13:$_reg='/^#?[0-9A-Fa-f]{6}$/';break;   default:$_reg=$_type;   case 22:$_reg='/^\-?[0-9]+$/';break;   case 23:$_reg='/^[a-zA-Z][a-zA-Z0-9\_]*/';break;   case 24:$_reg='/^[a-zA-Z0-9-_]+$/';break;   case 25:$_reg='/[a-zA-Z0-9\+\%]+(\=)*$/';break;   case 33:$_reg='/^(\-?[0-9]+\,?)+$/';break;   default:$_reg=$_type;              略..

代码执行:

$tmp=$t ? $t : $this->tmp;  if(substr($tmp,0,6)=='{Tags}'){   $s='<div style="border:5px solid #CCC;background:#EFEEEE;padding:15px;line-height:20px;">';   foreach($this->array as $key => $val){    $s.="<tt>{king:$key

查看更多关于KingCmsSQL注入加+代码执行 - 网站安全 - 自学php的详细内容...

  阅读:42次