Maison Opération et maintenance Sécurité Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Mar 04, 2020 am 10:45 AM
php7

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

J'ai récemment étudié l'antivirus Webshell et j'ai trouvé un nouveau point. La raison en est que j'ai soudainement pensé que puisque php7.1 ne peut pas utiliser l'assertion de fonctions variables, alors utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-kill, et enfin contourner un certain bouclier et "un certain d0g".

L'environnement expérimental est 7.1.9, et tous les chevaux ne peuvent pas être utilisés dans des environnements inférieurs à php7.

Base des règles D-shield (dernière) : 20191227

Étant donné qu'un certain d0g peut provoquer une infraction en testant ses produits, afin d'éviter d'être signalé, la photo ne sera pas publiée.

Pré-expérience

Un certain bouclier

D'abord le code suivant

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Une fausse alerte directe.

Par conséquent, il est irréaliste de transmettre directement des paramètres à eval.

Nous devons donc ensuite utiliser les fonctions et les nouvelles fonctionnalités de PHP pour le contourner.

Un certain d0g

Et pour un certain d0g, du moment que le code suivant

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

lui donnera une fausse alarme.

Par conséquent, lors de l'écriture d'un jeu sans chevaux, les variables de post ne doivent pas apparaître dans la chaîne de eval. Tout comme « b » ci-dessus, bien qu'il apparaisse comme une variable dans « eval ». Avec cette base à l’esprit, nous pouvons aller droit au but.

PHP7.0.x

[php manual-php7.0.x nouvelles fonctionnalités]( https://www.php.net/manual/zh/migration70.new-features. php)

Déclaration du type de valeur de retour

php7 ajoute la prise en charge de la déclaration de type de valeur de retour Ajoutez simplement un `:type` lors de la définition d'une fonction.

Par exemple :

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

signifie que le type de valeur de retour de la fonction doit être int. Sinon, la conversion sera forcée ou une erreur de syntaxe sera affichée.

Si le logiciel antivirus doté de cette fonctionnalité n'est pas mis à jour, il ne reconnaîtra pas cette fonction et sera contourné.

Par exemple :

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Vous pouvez le tester avec un logiciel antivirus.

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Trouvé non détecté.

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

peut être utilisé.

Opérateur de coalescence nul

En raison du grand nombre de situations où les expressions ternaires et `isset()` sont utilisées simultanément dans l'utilisation quotidienne, l'opérateur de coalescence nul (*??*) est ajouté . Sucre syntaxique. Si la variable existe et que sa valeur n'est pas **`NULL`**, elle renverra sa propre valeur, sinon elle renverra son deuxième opérande

En bref :

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Comment utiliser ` ? ? `, le logiciel de destruction ne comprendra pas ce processus de traitement, ce qui peut conduire à un contournement.

Tout comme le code suivant, vous pouvez contourner un certain d0g

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

puis utiliser l'appel de fonction

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Vous pouvez constater que vous avez réussi le bouclier D

Tester la convivialité

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Prenons un regardez les fonctionnalités de 7.1

php7.1.x

[php manuel-php7.0.x nouvelles fonctionnalités]( https://www.php.net/manual/zh/ migration71.new-features.php )

Types nullables

Les types de paramètres et les valeurs de retour peuvent désormais être nullables en ajoutant un point d'interrogation avant le type. Lorsque cette fonctionnalité est activée, les paramètres transmis ou le résultat renvoyé par la fonction sont soit du type donné, soit null .

Une fonctionnalité de plus que la 7.1 ? `Si la valeur de retour de la fonction n'est pas du type donné, elle sera vide.

Utilisez le même code :

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Pas de surprises

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

D-shield a réussi

Syntaxe de tableau court

La syntaxe de tableau court ([]) est désormais une solution de secours pour la liste( ), option de syntaxe, peut être utilisée pour attribuer la valeur du tableau à certaines variables (y compris dans foreach).

Ici, une liste de crochets `[] type` est utilisée pour la démonstration.

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

De cette façon, les valeurs du tableau sont affectées à ` $c`, `$d`.`$c='a';$d= 'b' ;`

De cette façon, vous pouvez utiliser cette fonctionnalité rarement utilisée pour contourner la suppression statique

Écrivez d'abord la plus simple :

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Puis nous avons passé un certain d0g. Testez-le vous-même.

Ensuite, vous pouvez faire correspondre la fonction. Comme ceci :

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Vérifiez-le

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Testez la convivialité

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

list() prend désormais en charge les noms de clés

Description officielle : list() et sa nouvelle syntaxe [] prennent désormais en charge la spécification des noms de clés à l'intérieur. Cela signifie qu'il peut attribuer n'importe quel type de tableau à certaines variables (similaire à la syntaxe de tableau court)

C'est très déroutant, vous le comprendrez peut-être après avoir regardé l'exemple.

ex :

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Vous pouvez réussir un certain d0g avec une petite modification (autotest) :

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Essayez D Shield

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Enregistré au niveau 1

Utilisez à nouveau la fonction personnalisée.

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

J'ai réussi D avec succès pour tester la convivialité.

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

Prend en charge les décalages de chaîne négatifs

Description officielle

Maintenant, toutes les fonctions d'opération de chaîne qui prennent en charge les décalages Prend en charge l'acceptation de nombres négatifs comme décalages, y compris l'exploitation indices de chaîne via [] ou {}. Dans ce cas, un décalage négatif s'entend comme un décalage par rapport à la fin de la chaîne.

Dans les versions inférieures à 7.1, les décalages négatifs renvoient une chaîne vide.

par exemple :

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

`s` est renvoyé dans 7.1.x, mais ` string(0) "" est renvoyé dans les versions précédentes `

Idée : On peut diviser la chaîne pour que les règles ne puissent pas être reconnues. Enfin, utilisez les variables variables de php :

Utilisez les nouvelles fonctionnalités de php7 pour contourner les règles anti-killing

De cette façon, vous pouvez transmettre un certain d0g. Mais pour le bouclier D, les caractères d'épissage et les variables variables seront reconnus. Signalement de niveau 1 « fichiers suspects », je dois dire que c'est vraiment très bien fait.

Fin

En fait, il existe de nombreuses fonctionnalités, telles que « définir un tableau constant via définir() », qui peuvent également être contournées par analogie. Et non seulement les fonctions personnalisées, mais également les classes, les variables variables, etc. peuvent être utilisées pour contourner la suppression statique.

Vous pouvez également utiliser « l'opérateur de vaisseau spatial (opérateur de comparaison combiné) », la « fonction de division entière intdiv() », etc. pour contourner la suppression dynamique.

Pour plus d'articles connexes, veuillez faire attention à la colonne Sécurité du serveur Web du site Web chinois php !

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment installer l'extension mongo dans php7.0 Comment installer l'extension mongo dans php7.0 Nov 21, 2022 am 10:25 AM

Comment installer l'extension mongo dans php7.0 : 1. Créez le groupe d'utilisateurs et l'utilisateur mongodb ; 2. Téléchargez le package de code source mongodb et placez le package de code source dans le répertoire "/usr/local/src/" ; Entrez le répertoire « src/ » ; 4. Décompressez le package de code source ; 5. Créez le répertoire de fichiers mongodb ; 6. Copiez les fichiers dans le répertoire « mongodb/ » 7. Créez le fichier de configuration mongodb et modifiez la configuration.

Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Mar 22, 2023 am 09:30 AM

En php5, nous pouvons utiliser la fonction fsockopen() pour détecter le port TCP. Cette fonction peut être utilisée pour ouvrir une connexion réseau et effectuer certaines communications réseau. Mais en php7, la fonction fsockopen() peut rencontrer certains problèmes, comme ne pas pouvoir ouvrir le port, ne pas pouvoir se connecter au serveur, etc. Afin de résoudre ce problème, nous pouvons utiliser la fonction socket_create() et la fonction socket_connect() pour détecter le port TCP.

Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Apr 02, 2024 pm 07:39 PM

Pour résoudre le problème du plugin n'affichant pas installé dans PHP 7.0 : Vérifiez la configuration du plugin et activez le plugin. Redémarrez PHP pour appliquer les modifications de configuration. Vérifiez les autorisations du fichier du plugin pour vous assurer qu'elles sont correctes. Installez les dépendances manquantes pour garantir le bon fonctionnement du plugin. Si toutes les autres étapes échouent, reconstruisez PHP. D'autres causes possibles incluent des versions de plugin incompatibles, le chargement d'une mauvaise version ou des problèmes de configuration PHP.

Comment installer et déployer php7.0 Comment installer et déployer php7.0 Nov 30, 2022 am 09:56 AM

Comment installer et déployer php7.0 : 1. Accédez au site officiel de PHP pour télécharger la version d'installation correspondant au système local ; 2. Extrayez le fichier zip téléchargé dans le répertoire spécifié 3. Ouvrez la fenêtre de ligne de commande et accédez à ; le répertoire "E:\php7" Exécutez simplement la commande "php -v".

Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Apr 09, 2024 pm 01:33 PM

Les solutions courantes pour les environnements de serveur PHP consistent à s'assurer que la version correcte de PHP est installée et que les fichiers pertinents ont été copiés dans le répertoire du module. Désactivez SELinux temporairement ou définitivement. Vérifiez et configurez PHP.ini pour vous assurer que les extensions nécessaires ont été ajoutées et configurées correctement. Démarrez ou redémarrez le service PHP-FPM. Vérifiez les paramètres DNS pour les problèmes de résolution.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Pourquoi une erreur se produit-elle lors de l'installation d'une extension à l'aide de PECL dans un environnement Docker? Comment le résoudre? Pourquoi une erreur se produit-elle lors de l'installation d'une extension à l'aide de PECL dans un environnement Docker? Comment le résoudre? Apr 01, 2025 pm 03:06 PM

Causes et solutions pour les erreurs Lors de l'utilisation de PECL pour installer des extensions dans un environnement Docker Lorsque nous utilisons un environnement Docker, nous rencontrons souvent des maux de tête ...

Lequel est le meilleur, php8 ou php7 ? Lequel est le meilleur, php8 ou php7 ? Nov 16, 2023 pm 03:09 PM

Par rapport à PHP7, PHP8 présente certains avantages et améliorations en termes de performances, de nouvelles fonctionnalités et améliorations de la syntaxe, du système de types, de la gestion des erreurs et des extensions. Cependant, le choix de la version à utiliser dépend de vos besoins spécifiques et des circonstances du projet. Introduction détaillée : 1. Amélioration des performances, PHP8 introduit le compilateur Just-in-Time (JIT), qui peut améliorer la vitesse d'exécution du code ; 2. Nouvelles fonctionnalités et améliorations de la syntaxe, PHP8 prend en charge la déclaration des paramètres nommés et des paramètres facultatifs, création de fonctions L'appel est plus flexible ; des classes anonymes, des déclarations de propriétés de type, etc. sont introduites.

See all articles