Maison >Tutoriel CMS >PHPCMS >Collection de vulnérabilités de sécurité phpcms
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', //密钥3. Recherchez et modifiez auth_key, une chaîne de 32 bits ; personnalisez simplement ce que vous écrivez.
'phpsso_auth_key' => 'hjor66pewop_3qooeamtbiprooteqein', //加密密钥Remarque : à cette étape, c'est la même chose que la réparation en un clic Cloud Knight d'Alibaba Cloud.
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 à la formation php colonne !
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!