
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!
Que faire si le dossier des documents apparaît lorsque l'ordinateur est allumé
Comment restaurer le navigateur IE pour accéder automatiquement à EDGE
Comment lire les données de contrôle de macro en javascript
Comment insérer des images en CSS
Méthode chinoise de saisie sublime
La raison pour laquelle la fonction d'en-tête renvoie un échec 404
Comment utiliser le commutateur Java
Est-il nécessaire de mettre à niveau Windows 11 ?