SINE Security effectuait une détection et une réparation des vulnérabilités du site Web d'un client et a découvert que le site Web présentait de graves vulnérabilités d'injection SQL et des vulnérabilités de fichiers de Troie de site Web Webshell téléchargés. Le site Web utilisait un certain système CMS et était développé en utilisant le langage PHP, mysql. L'architecture de la base de données et le code source du site sont actuellement open source.
Un CMS est un système CMS social qui se concentre sur la fourniture de connaissances payantes. Il existe une forte demande de paiement de connaissances sur l'Internet actuel. Les documents peuvent être partagés et téléchargés moyennant des frais, et le contenu des connaissances publié par les utilisateurs peut être masqué et fourni aux clients payants pour lecture. Le code est relativement simplifié et est populaire parmi les webmasters. La vulnérabilité de ce site Web se produit principalement lorsque le package compressé est téléchargé. Un code de décompression malveillant est construit pour décompresser le webshell dans le package zip dans le répertoire spécifié, provoquant ainsi l'apparition de la vulnérabilité. Ce CMS présente également une vulnérabilité d’injection SQL. Décomposons les vulnérabilités en détail une par une.
Détails de la vulnérabilité d'injection SQL et plan de réparation
Vérifiez le fichier de configuration de la base de données de code du site Web, vérifiez que la fonction de connexion à la base de données utilise le mode pdo, puis tracez soigneusement le code. Il a été constaté que certaines opérations d'échappement de symboles spéciaux étaient utilisées. Certains codes d'injection SQL n'étaient pas alignés pour un filtrage de sécurité complet, ce qui entraînait des attaques par injection SQL. La capture d'écran du code est la suivante :
#. 🎜 🎜#
Le code ci-dessus utilise la fonction de requête select. Concentrons-nous sur sa fonction cond Grâce à un examen détaillé du code, nous déterminons que cette fonction est utilisée pour connecter les valeurs écrites par le front-end. Les utilisateurs finaux actuels soumettent du code malveillant qui sera transmis à la valeur de l'identifiant. Assignons les instructions SQL et effectuons des opérations de remplacement de variable sur la valeur de l'identifiant. Nous pouvons utiliser IN, comme et d'autres instructions SQL pour attaquer la base de données, vérifiez. le mot de passe du compte de la base de données, et Modifier la base de données. Pour corriger les vulnérabilités d'injection SQL, il est nécessaire de filtrer la saisie de caractères illégaux dans les requêtes GET et POST. 'Filtrage des points-virgules --Filtre le filtrage des caractères spéciaux %20, le filtrage des guillemets simples, le signe % pour cent et le filtrage, la valeur de la clé de tabulation, etc., le filtrage de sécurité. Activez la magie PHP pour empêcher la transmission et la construction de certains paramètres illégaux. Vulnérabilité du webshell de téléchargement du site WebLe site Web est ouvert aux utilisateurs enregistrés gratuitement, et ils peuvent être considérés comme des utilisateurs ordinaires. Lors d'une inspection de sécurité complète de sa fonction de téléchargement, elle a été découverte. qu'il y avait une vulnérabilité zip de téléchargement dans les packages compressés. Le téléchargement de fichiers tels que doc nécessite un examen, mais le zip est écrit directement dans la base de données via la vulnérabilité d'injection SQL découverte ci-dessus, et nous pouvons voir l'adresse du fichier. fermeture éclair. Comment télécharger le webshell, nous interrogeons le compte administrateur et le mot de passe du backend du site Web via la vulnérabilité d'injection SQL, nous connectons au backend du site Web, toutes les fonctions du backend ne sont pas disponibles. Il existe une vulnérabilité, mais lors de la visualisation du code source, j'ai trouvé un code fonctionnel qui peut décompresser le fichier zip sans utiliser les autorisations de l'utilisateur. Ensuite, nous construirons des paramètres pour accéder directement au code décompressé. fichier, publiez la demande et envoyez-nous directement le fichier zip dans le fichier actuel, nous pouvons télécharger notre cheval de Troie webshell. Concernant la réparation de la vulnérabilité de téléchargement du site Web, il est recommandé que l'administrateur désactive la fonction de décompression ou détermine les autorisations des fichiers décompressés si l'utilisateur administrateur dispose de la fonction de décompression ou de la fonction ordinaire. Le membre a l'autorisation de décompresser le document. , d'effectuer une allocation raisonnable et sûre des autorisations, puis de définir des autorisations sans script sur le répertoire téléchargé pour empêcher l'exécution de la porte dérobée du cheval de Troie Webshell. Si vous n'êtes pas familier avec la réparation des vulnérabilités des sites Web, il est recommandé de trouver une société de sécurité de sites Web professionnelle pour vous aider à réparer les vulnérabilités des sites Web. En Chine, Sinesafe, Green Alliance, Venus Star et d'autres sociétés de sécurité sont plus professionnelles.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!