Qu'est-ce qu'une attaque par injection JavaScript?
1. L'injection JavaScript consiste à saisir un morceau de code JS dans la barre d'adresse du navigateur pour modifier le contenu des variables JS de page et des étiquettes de page.
En utilisant l'injection JavaScript, les utilisateurs peuvent modifier leur contenu sans fermer ou enregistrer des pages Web, ce qui se fait sur la barre d'adresse du navigateur. La syntaxe de la commande est la suivante:
javascript: alert (# commande #)
Par exemple, si vous souhaitez voir une boîte d'avertissement d'alerte sur le site http://www.example.com, entrez d'abord l'URL dans la barre d'adresse et attendez que la page se charge, puis supprimez l'URL et entrez:
JavaScript: alert (Hello World)
Comme une nouvelle URL. Cela apparaîtra dans un boîtier mondial Hello, en utilisant cette technique pour changer presque tout sur une page Web, comme une image. Supposons qu'il y ait une image de logo de site Web et que nous trouvons l'un des code HTML en regardant le fichier source de la page:
<Img name = hi src = hello.gif>
L'image est nommée Salut, le fichier source est hello.gif, nous voulons le changer dans le fichier bye.jpeg stocké sur notre site (http://www.mysite.com), donc l'adresse URL complète de l'image est http://www.mysite.com/bye.jpeg, en utilisant l'injection JavaScript, nous devons simplement y entrer dans la barre d'adresse: la barre d'adresse:
javascript: alert (document.hi.src = http: //www.mysite.com/bye.jpeg)
Vous verrez un http://www.mysite.com/bye.jpegalert. Il convient de noter que ces changements ne sont que temporaires! Si vous actualisez la page ou réintégrez vos modifications disparaîtront, car vous venez d'apporter ces modifications sur votre PC, pas sur le serveur Web.
En utilisant la même méthode que nous pouvons afficher ou modifier la valeur de la variable, par exemple, nous trouvons un morceau de code comme celui-ci sur une page Web:
<Script linguisse = javascript> var a = test </cript>
Cela signifie que la valeur de la variable a est test, et maintenant nous entrons:
javascript: alerte (a)
Ensuite, nous passons sa valeur à Hello:
javascript: alert (a = bonjour)
L'injection JavaScript est généralement utilisée pour modifier les propriétés du formulaire, en supposant qu'il y a un morceau de code comme celui-ci:
<formage name = format Action = send.php Method = Post> <input type = Hidden Name = Mail [email protected]> <Type de Text = Nom = Name> <Type de Soumis = Value = Soumis> </ Form>
Nous voulons que le formulaire soit envoyé dans notre boîte aux lettres, pas quelqu'[email protected]. Vous pouvez utiliser la commande suivante:
javascript: alert ([email protected])
Vous avez peut-être remarqué la hiérarchie de ces commandes:
Expliquons-le dans l'ordre de gauche à droite:
1) Le document est à gauche
2) Ensuite, il y a le nom de l'objet que nous voulons modifier (tel que document.hi.src) ou l'objet qu'il contient (tel que document.format.mail.value)
3) Enfin, l'attribut que nous voulons modifier (comme le chemin source: document.hi.src, ou valeur variable: document.format.mail.value)
4) Utiliser la séparation du nombre
5) Lorsque nous voulons modifier la valeur d'attribut, nous utilisons le Sign et la valeur d'attribut nouvelle
* Remarque: Lorsque la nouvelle valeur d'attribut est une chaîne (par exemple: [email protected]), elle doit être enfermée en doubles citations.
Si nous voulons l'utiliser comme valeur pour une variable, nous n'avons pas besoin d'utiliser des devis doubles. Par exemple, si nous voulons attribuer la valeur de la variable B à la variable A, nous pouvons entrer JavaScript: alert (a = b).
Cependant, la plupart des balises de la page n'ont pas de noms, tels que:
<formulaire Action = Send.php Method = Post> <INPUT TYPE = NAME HIDDEN = Mail [email protected]> <INPUT TYPE = NAME TEXT = NAME> <TYPE INPUT = SOUMAD VALAVE = SOUMING> </ FORM>
Il n'y a pas de nom de formulaire dans ce code. Sur la base des informations ci-dessus, vous pouvez utiliser cette commande:
javascript: alert (document. .mail.value = me @ hacker.com)
Dans ce cas, nous devons compter et trouver le numéro de séquence de formulaire, et ce qui suit est un exemple:
<form action = send.php Method = Post> <input type = text name = name> <input type = soumider value = soumed> </ form> <form action = send.php metheth = post> <input type = Hidden Name = Mail [email protected]> <entrée type = text name = name> <input type = soumed vax = text = </ form> <form action = Send.php metheth = post> </ form>
Dans le code ci-dessus, nous voyons 3 formulaires, mais nous ne sommes intéressés que par le second, donc le numéro de formulaire que nous voulons est 2. N'oubliez pas que nous commençons à partir de 1, comme 1, 2, 3, 4 ... tandis que JavaScript commence à partir de 0, tels que 0, 1, 2, 3 ... donc le vrai numéro de forme est 1, pas 2. Habituellement, nous devons soustraire le numéro de forme trouvé par un. Nous utiliserons ce numéro de série pour compléter notre commande:
javascript: alert (document.forms [1] .mail.value = me @ hacker.com)
De cette façon, vous pouvez modifier l'image ou le lien sans nom, et vous pouvez modifier les formulaires en n'importe quel type de balise que vous souhaitez. Pour les photos
javascript: alert (document.images [3] .src = # L'URL de l'image que vous voulez #)
Car le lien est
javascript: alert (document.links [0] .href = # L'URL que vous voulez #)
Enfin, nous pouvons utiliser cette technique pour modifier les cookies. La commande suivante est écrite par DR_AMADO de TriviasEcurity.net, et je ne l'ai modifié qu'un peu pour le laisser apparaître avant que l'utilisateur ne le modifie. Il vous suffit de les copier dans la barre d'adresse:
JavaScript: alert (window.c = fonction a (n, v, nv) {c = document.cookie; c = c.substring (c.indexof (n) + n.length, c.length); c = c.substring (1, ((c.indexof (;)> - 1)? C.Indexofof (;): C.LengthGe); nc = unescape (c) .replace (nv); document.cookie = n + = + Escape (nc); alert ('Le cookie est:' + document.cookie + ''); alerte (c (invite (le nom du cookie :,), invite (modifier cette valeur :,), invite (avec ceci :,)))))// Si vous souhaitez changer manuellement votre cookie, vous pouvez utiliser la commande suivante:
javascript: alert (document.cookie)
Cela affichera votre cookie actuel, en supposant que userId = 1, si vous souhaitez le changer en userId = 2, vous pouvez utiliser la commande suivante:
javascript: alert (document.cookie = userId = 2)
Enfin, je dois souligner que tous les changements sont juste du côté client! C'est comme enregistrer une page Web sur votre PC et le modifier. Pourtant, en utilisant cette astuce, vous pouvez toujours tromper la page (comme les cookies) ou contourner la vérification de sécurité. Par exemple, certaines pages Web détecteront l'emplacement où l'utilisateur envoie des données. Si vous envoyez des données de http://www.test.com/form.php à http://www.test.com/check.php, check.php peut détecter si les données proviennent du formulaire sur http://www.test.com/form.php. En plus de cela, si vous prévoyez d'entrer votre propre code JavaScript dans la page, en utilisant certaines de ces astuces, vous pourrez changer l'image et la laisser la même chose!
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.