1. Vulnérabilité d'injection d'octets larges
/phpcms/modules/pay/respond.php à environ 16 lignes
le code original
$payment = $this->get_by_code($_GET['code']);
est remplacé par
$payment = $this->get_by_code(mysql_real_escape_string($_GET['code']));
2. Vulnérabilité d'injection phpcms
/phpcms/modules/poster/poster .php se trouve à environ la ligne 221 de
if ($_GET['group']) {
, puis ajoutez
$_GET['group'] = preg_replace('#`#', '', $_GET['group']);
3 Patch pour la vulnérabilité de lecture de fichiers arbitraire causée par l'injection frontale de phpcms
./phpcms/ modules/content/down.php
(1) Remplacez la ligne 17
parse_str($a_k);
par
$a_k = safe_replace($a_k); parse_str($a_k);
(2) Ligne 89
parse_str($a_k);
Remplacer par
$a_k = safe_replace($a_k); parse_str($a_k);
(3) Ajouter
$filename = date('Ymd_his').random(3).'.'.$ext;
après la ligne 120 de
$fileurl = str_replace(array('<','>'), '',$fileurl);
4. Vulnérabilité d'injection phpcms
/phpcms/ modules/member/index.php se trouve à la ligne 615 Code original :$password = isset($_POST['password']) && trim($_POST['password']) ? trim($_POST['password']) : showmessage(L('password_empty'),HTTP_REFERER);
$password = isset($_POST['password']) && trim($_POST['password']) ? addslashes(urldecode(trim($_POST['password'] ))) : showmessage(L('password_empty'), HTTP_REFERER);
5 Vulnérabilité d'injection SQL PHPCMS V9.6.2.
(1) phpcms/libs/classes/param.class.php se trouve à peu près à la ligne 109 Le code original$value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;
$value = isset($_COOKIE[$var])?addslashes(sys_auth($_COOKIE[$var],'DECODE')):$default;
return isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;
return isset($_COOKIE[$var]) ? addslashes(sys_auth($_COOKIE[$var],'DECODE')) : $default;
6. Un problème logique quelque part dans phpcms a fait que getshell
/phpcms/libs/classes/attachment.class.php se trouvait à environ la ligne 143 aprèsfunction download($field, $value,$watermark = '0',$ext = 'gif|jpg|jpeg|bmp|png', $absurl = '', $basehref = ''){
$extArray=explode('|',$ext); if(!empty($extArray) && is_array($extArray)){ foreach($extArray as $k => $v){ if(!in_array(strtolower($v), array('gif','jpg','jpeg','bmp','png'))); exit('0');//循环判断如果 有一个不符合,直接返回 0 } }
7. La vulnérabilité d'injection phpcms
/api/phpsso.php se situe à environ 128 lignes Remplacer le code d'origine$arr['uid'] = intval($arr['uid']); $phpssouid = $arr['uid'];
$phpssouid = intval($arr['uid']);
8. Des problèmes avec l'algorithme de génération de clé d'authentification phpcms entraînent une fuite de clé d'authentification
Régénérez la valeur de la clé selon la fonction suivante. , puis recherchez les caches/configs Remplacez simplement les deux paramètres dans /system.php et tout ira bien<?php function random($length, $chars = '0123456789') { $hash = ''; $max = strlen($chars) - 1; for($i = 0; $i < $length; $i++) { $hash .= $chars[mt_rand(0, $max)]; } return $hash; } echo random(20, 'authkey').'<br/>'; echo random(32, 'phpssoauthkey');exit; ?>
Tutoriels PHPCMS gratuits, bienvenue pour apprendre en ligne!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!