Exemples de XSS, que je peux utiliser pour tester ma page d'entrée?
J'ai eu des problèmes avec XSS. Plus précisément, j'ai eu une personne injecter JS d'alerte en montrant que le mon entrée avait des vulnérabilités. J'ai fait des recherches sur les XSS et trouve des exemples, mais pour une raison que je ne peux pas les faire travailler.
Puis-je obtenir de l'exemple(s) de XSS, que je puisse jeter dans mon entrée et quand je l'ai sortie de nouveau à l'utilisateur de voir une sorte de changement comme une alerte à savoir qu'ils sont vulnérables?
Je suis à l'aide de PHP, et je vais la mettre en œuvre htmlspecialchars (), mais j'ai d'abord essaye de reproduire ces vulnérabilités.
Merci!
- Code les vulnérabilités d'injection tels que XSS ou par injection SQL sont toujours à la suite d'une mauvaise utilisation ou un manque de données s'échapper. En PHP, vous devez utiliser
htmlspecialchars()
sur tout ce que vous sortie à la page qui n'est pas destiné à être balisage. Pour économiser un peu de temps vous pouvez utiliser un wrapperfunction h($s) { return htmlspecialchars(s); }
et l'utilisationh()
partout. - Quel est le point de tests de vulnérabilités XSS avant vous mettre en œuvre
htmlspecialchars()
(ouhtmlentities()
)? - Aussi, pensez toujours au "code", vous êtes dans: Par exemple: Lors de l'écriture des données générées par l'utilisateur à un commentaire HTML, vous n'avez pas vraiment à
htmlspecialchars()
, mais vous devez vous rappeler de supprimer toutes les occurrences de-->
à partir de ces données ou si vous avez une possible vulnérabilité XSS là. - Bon point, bien que, je suis curieux parce que j'avais mis en œuvre striptags() avec d'autres tests et c'était encore en cours. Pour ne pas mentionner si je n'ai pas de reproduire une vulnérabilité avant de me mettre en œuvre htmlspecialchars() alors je ne vais pas "sentir" comme il est d'aller travailler. Surtout pour la curiosité & apprentissage bien. 😀
- Merci pour les bons conseils! Savez-vous si il est un point quelconque de l'aide striptags() et htmlspecialchars()? (devrais-je faire une nouvelle question pour cela?) MERCI!!!
strip_tags()
n'est pas spécifiquement un anti-XSS fonction. Si vous mélangez les données et le code (oui, c'est fondamentalement ce que vous faites: dans HTML "code" est le balisage, les "données" est tout autre chose, comme du texte ou des valeurs d'attribut, dans le JavaScript "données" est littéraux de chaîne, etc) vous devez vous échapper de données en conséquence. Donc, il n'y a pas moyen de contournerhtmlspecialchars()
en PHP/HTML, etstrip_tags()
ne peut qu'aider.- chaque fonction étudiée ici, si utilisé seul, est vulnérable aux attaques de type XSS. Il n'y a pas de solution miracle, il faut coder en une injection de manière dépendante du contexte. Merci de lire owasp.org/index.php/... Qui explique environ 6 différents secteurs architecturaux dans un document HTML. Chacun a besoin de différents comportements
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser cet addon firefox:
Par exemple:
Il est très bon d'utiliser certains des outils automatisés, cependant vous n'aurez pas gain de toute réflexion ou l'expérience de ceux-ci.
Le point d'attaque XSS est d'exécuter du code javascript dans une fenêtre de navigateur, qui n'est pas fourni par le site. Alors d'abord vous devez avoir un coup d'oeil dans ce contexte, les données fournies par les utilisateurs est imprimé sur le site; il pourrait être dans
<script></script>
bloc de code, il pourrait être dans<style></style>
bloc, il pourrait être utilisé comme un attribut d'un élément<input type="text" value="USER DATA" />
ou, par exemple, dans un<textarea>
. Selon que vous comprendrez ce qu'est la syntaxe à utiliser pour s'échapper du cadre (ou de l'utiliser); par exemple, si vous êtes dans<script>
balises, il pourrait être suffisant pour fermer parethesis d'une fonction et de terminer la ligne par un point-virgule, de sorte que l'injection finale ressemblera à); alert(555);
. Si les données fournies sont utilisées comme un attribut html, l'injection pourrait ressembler" onclick="alert(1)"
qui va provoquer js exécution si vous cliquez sur l'élément (cette région est riche de jouer avec en particulier avec html5).Le point est, le contexte de la xss est d'autant plus important que tout, le filtrage de sanatizing les fonctions qui peuvent être mis en place, et souvent il y a peut être des petites nuances qui l'outil automatisé ne sera pas attraper. Comme vous pouvez le voir ci-dessus même sans les guillemets et les balises html, dans un nombre limité de circonstances, vous pourriez être en mesure de contourner les filtres et execute js.
Il doit également être considéré comme le navigateur de codage, par exemple, vous pourriez être en mesure de contourner les filtres si le navigateur cible a utf7 encodage (et vous encodez votre injection de cette façon). Filtre évasion fiscale est une toute autre histoire, toutefois, leurs fonctions PHP sont assez pare-balles, si elle est utilisée correctement.
Est également ici une assez longue liste de XSS vecteurs
Comme une dernière chose, voici un exemple réel d'un XSS chaîne qui a été trouvé sur un site, et je vous garantie que pas un seul scanner avons constaté que (il y en avait de plusieurs filtres et mot de listes noires, la page autorisés à insérer le formatage html de base pour personnaliser votre page de profil):
<a href="Boom"><font color=a"onmouseover=alert(document.cookie);"> XSS-Try ME</span></font>
Ad-hoc test est OK, cependant je recommande également d'essayer une application web d'analyse de la vulnérabilité de l'outil pour s'assurer que vous n'avez rien manqué.
acunetix est assez bon et a un essai gratuit de leur application:
http://www.acunetix.com/websitesecurity/xss.htm
(Remarque je n'ai aucune affiliation avec cette compagnie, cependant, j'ai utilisé le produit à tester mes propres applications).