Recommandé (gratuit) :phpcms Tutoriel
1. Vulnérabilité d'injection d'octets larges
/phpcms/modules/pay / répond.php se trouve à environ 16 lignes
Remplacez le code d'origine
$payment = $this->get_by_code($_GET['code']);
par
$payment = $this->get_by_code(mysql_real_escape_string($_GET['code']));
2. La vulnérabilité d'injection phpcms
/phpcms/modules/poster/poster.php se trouve à la ligne 221
if ($_GET['group']) {
Ajoutez ensuite
$_GET['group'] = preg_replace('#`#', '', $_GET['group']);
3. Injection frontale phpcms conduisant à un correctif de vulnérabilité de lecture de fichiers arbitraire
/phpcms/modules /content/down.php
(1) La position d'environ 17 lignes
parse_str($a_k);
est remplacée par
$a_k = safe_replace($a_k); parse_str($a_k);
(2) La position d'environ 89 lignes
parse_str($a_k);
est remplacée par
$a_k = safe_replace($a_k); parse_str($a_k);
[Les deux problèmes ci-dessus ont été corrigé dans la version 6.3]
(3) Environ 120 lignes après
$filename = date('Ymd_his').random(3).'.'.$ext;
ajouter
$fileurl = str_replace(array('<','>'), '',$fileurl);
4. La vulnérabilité d'injection phpcms
/phpcms/modules/member/index.php se trouve à environ la ligne 615
Code original :
$password = isset($_POST['password']) && trim($_POST['password']) ? trim($_POST['password']) : showmessage(L('password_empty'),HTTP_REFERER);
est remplacé par :
$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 est situé à environ la ligne 109
Code original
$value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;
Remplacé par
$value = isset($_COOKIE[$var])?addslashes(sys_auth($_COOKIE[$var],'DECODE')):$default;
(2)/phpsso_server/phpcms/libs/classes/param.class.php à la ligne 108
Le code original
return isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;
est remplacé par
return isset($_COOKIE[$var]) ? addslashes(sys_auth($_COOKIE[$var],'DECODE')) : $default;
6. Un problème de logique quelque part dans phpcms provoque getshell
/phpcms/libs/classes/attachment.class.php se trouve à la ligne 143 de
function download($field, $value,$watermark = '0',$ext = 'gif|jpg|jpeg|bmp|png', $absurl = '', $basehref = ''){
puis ajoutez
// 此处增加类型的判断 if($ext !== 'gif|jpg|jpeg|bmp|png'){ if(!in_array(strtoupper($ext),array('JPG','GIF','BMP','PNG','JPEG'))) exit('附加扩展名必须为gif、jpg、jpeg、bmp、png'); }
7. La vulnérabilité d'injection phpcms
/api/phpsso.php se trouve à environ 128 lignes
Le code original
$arr['uid'] = intval($arr['uid']); $phpssouid = $arr['uid'];
est remplacé par un code deux-en-un
$phpssouid = intval($arr['uid']);
8. Un problème d'algorithme de génération de clé d'authentification phpcms entraîne une fuite de clé d'authentification
1. Dans /caches/configs/system.php, ajoutez le premier paramètre : 'alivulfix' => 'yes',
Après modification, la capture d'écran du code est la suivante :
'auth_key' => '2qKYgs0PgHWWtaFVb3KP', //密钥
'phpsso_auth_key' => 'hjor66pewop_3qooeamtbiprooteqein', //加密密钥
C'est juste que les utilisateurs du site Web ne peuvent pas se connecter pour le moment. L'étape la plus importante reste.
4. Connectez-vous au centre de gestion phpsso en arrière-plan. Dans le menu de navigation phpsso ——> Gestion des applications ——> Modifier la "clé de communication" à la valeur de 'phpsso_auth_key' définie à l'étape 3, puis cliquez sur Soumettre.
Les captures d'écran des étapes clés sont les suivantes :
Après la soumission, la page affiche une communication réussie, comme indiqué ci-dessous.
Pour plus d'apprentissage en programmation, veuillez prêter attention à laformation phpcolonne !
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!