Maison  >  Article  >  développement back-end  >  Explication complète des vulnérabilités PHP (3)-Implantation de script client

Explication complète des vulnérabilités PHP (3)-Implantation de script client

黄舟
黄舟original
2016-12-22 09:20:251277parcourir

L'insertion de script côté client (insertion de script) fait référence à l'insertion de scripts exécutables dans des objets tels que des formulaires, des images, des animations ou du texte de lien hypertexte. Lorsque l'utilisateur ouvrira ces objets, le script implanté par l'attaquant sera exécuté et l'attaque commencera.

Les balises HTML qui peuvent être utilisées pour l'implantation de scripts incluent généralement les éléments suivants :

1. Les scripts de page tels que javascript et vbscript marqués par la balise <script> Vous pouvez spécifier le code du programme js dans la balise <script>, ou vous pouvez spécifier le chemin URL du fichier js dans l'attribut src </script>

2. L'objet marqué par la balise Ces objets sont des applets Java, des fichiers multimédias, des contrôles ActiveX, etc. Habituellement, le chemin URL de l'objet est spécifié dans l'attribut de données

3. Objet marqué par la balise . Ces objets sont des fichiers multimédias, tels que des fichiers swf. Habituellement, le chemin URL de l'objet est spécifié dans l'attribut src

4 Objet marqué par la balise . Ces objets sont des applets Java et le chemin URL de l'objet est généralement spécifié dans l'attribut de base de code

5 Objets marqués de la balise

. Habituellement, le chemin URL de l'application Web pour traiter les données du formulaire est spécifié dans l'attribut d'action

Étapes d'attaque par implantation de script côté client

1 L'attaquant se connecte au site Web après s'être enregistré en tant que utilisateur. utilisateur normal

2. Ouvrez la page de message et insérez le code js d'attaque

3. D'autres utilisateurs se connectent au site Web (y compris les administrateurs) et parcourent le contenu de ce message

4. Caché dans le contenu du message Le code js est exécuté et l'attaque est réussie

Explication complète des vulnérabilités PHP (3)-Implantation de script client

Instance

Base de données

CREATE TABLE `postmessage` (

` id` int(11) NON NULL auto_increment,

`subject` varchar(60) NON NULL par défaut ”,

`name` varchar( 40) NOT NULL par défaut »,

`email` varchar(25) NOT NULL par défaut »,

`question` mediumtext NOT NULL,

`postdate` datetime NOT NULL par défaut '0000-00-00 00:00 : 00′,

CLÉ PRIMAIRE (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COMMENT='Message de l'utilisateur' AUTO_INCREMENT=69 ;

// add.php Insérer un message

//list.php Liste des messages

//show.php Afficher le message

Soumettre le message ci-dessous

Explication complète des vulnérabilités PHP (3)-Implantation de script client


Lors de la navigation dans ce message, le script js sera exécuté

Insérer<script>while(1){ windows.open();}< /script> Boîte contextuelle infinie </script>

Insérer <script>location.href="http://www.php1.cn/"></script>

ou utiliser d'autres attaques de code js auto-construit

Méthodes de prévention

Utiliser généralement la fonction htmlspecialchars pour convertir les caractères spéciaux en codage HTML

Prototype de fonction

string htmlspecialchars (string string, int quote_style , string charset)

string est la chaîne à encoder

quote_style est facultative La valeur peut être ENT_COMPAT, ENT_QUOTES, ENT_NOQUOTES. signifie que seuls les guillemets doubles seront convertis et que les guillemets simples ne seront pas convertis. ENT_QUOTES, indiquant que les guillemets doubles et simples doivent être convertis. ENT_NOQUOTES, indiquant que les guillemets doubles et simples ne sont pas convertis.

le jeu de caractères est facultatif, indiquant le jeu de caractères utilisé. La fonction

convertira les caractères spéciaux suivants en codage html :

<.>& —-> &

" —-> "

' —-> '

> ; —-> >

Remplacez la ligne 98 de show.php par

Vérifiez ensuite la page de vulnérabilité où js est inséré

Ce qui précède est la solution complète des vulnérabilités PHP (3) - le contenu de implantation de script client. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) ! Explication complète des vulnérabilités PHP (3)-Implantation de script client


Déclaration:
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