Execution de code HTML brute

WRInaute occasionnel
Bonsoir à tous, j'ai sur un de mes sites des bouton input type "text". J'ai tout à l'heure "testé" la securite de mon code :mrgreen:

Et je me suis aperçu que le html était interprété directement apres le rechargement de ma page. Je m'explique

Je saisis dans mon input identifiant : <h1>test</h1>

Et lorsque je valide moln formulaire et que la page est rechargé j'ai un beau test qui s'affiche directement...

Je ne pense pas que cela soit important, le html est rapidement limité, y'a il un risque ? et cela est il exploitable à des fins plus dangereuse pour un site ?

Merci par avance :wink:
 
WRInaute accro
user2home a dit:
Je ne pense pas que cela soit important, le html est rapidement limité, y'a il un risque ? et cela est il exploitable à des fins plus dangereuse pour un site ?

beaucoup de questions mais pas assez de précisions.

Si tes valeurs passent en Get, ça peut être une bonne source pour hameçonner tes visiteurs en usurpant ton nom de domaine (puisque tu peut recomposer la page entière en te servant d'une url a toi)

Si c'est en Post, c'est celons. mais c'est surtout révélateur d'un manque total de traitement des données utilisateurs et là ça craint.
 
WRInaute occasionnel
franckM a dit:
Pourquoi le HTML ne serait pas interprété ???

Il est interprété, c'est justement la qu'interviennent les htmlentities, htmlspecialchars si je ne m'abuse


'><h1>test</h1> devient &#039;&gt;&lt;h1&gt;test&lt;/h1&gt; quand c'est correctement fait :wink:


Ma question est toujours de savoir si ca peut poser des graves soucis :wink:
 
WRInaute occasionnel
zeb a dit:
Si tes valeurs passent en Get, ça peut être une bonne source pour hameçonner tes visiteurs en usurpant ton nom de domaine (puisque tu peut recomposer la page entière en te servant d'une url a toi).

Tu peux développer ? je ne sais pas si j'ai bien compris, pour !les $_GET et $_POST ca importe peut les names sont dans la source :?:
 
WRInaute passionné
Si c'est affiche qu'au visiteur pas de problème. Si ça permet d'ajouter du contenu sur ton site c'est dangereux.
 
WRInaute occasionnel
forty a dit:
Si c'est affiche qu'au visiteur pas de problème. Si ça permet d'ajouter du contenu sur ton site c'est dangereux.

Je vais essayer d'être plus précis, en admettant que un input text permette d'executer un alert("alert") javascript, j'ai fais quelques recherche. Les divers articles décrivent ca comme une faille dite XSS, mais en finalitée ormi faire apparaitre une jolie fenêtre au rechargement cela peut il être vraiment préjudiciable ?

Utiliser des document."iddiv" display none par exemple ou je ne sais quoi d'autres, document.write ?


Au rechargement on aperçoit les changements mais le visiteur lanbda ne les vois pas s'afficher au rechargement :roll:

Merci par avance :wink:
 
Nouveau WRInaute
Tout ça est enregistré en bdd ? Attention aux injections SQL également.
Si le code entré est limité au seul utilisateur qui va voir la page, effectivement, l'impact est limité. Mais il faut quand même éviter ça. Javascript est bourré de failles et permet l’exécution de toute une tripotée de saloperies sur ton poste, virus, trojan, zombie, etc...
 
WRInaute impliqué
Oui, enfin bon, les failles, c'était surtout Active X. Le JavaScript en lui même n'a pas de raison d'avoir de faille. C'est ce que le navigateur lui permet de faire qui peut être dangereux.

Pour revenir au sujet, la vrai question est : quel est le but de ton champ texte ?

Si c'est afficher une information sur ton site, tout en laissant la possibilité à l'utilisateur de styler son texte, alors passe par un moyen sur. Par exemple, le BBCode ou encore HtmlPurifier.

Si l'utilisateur n'est pas autorisé à utiliser des balises HTML, alors il n'y aucune question à se poser, tu échappes les caractères spéciaux (htmlspecialchars() devrait suffire) partout où tu affiches l'information et même dans les attributs (important!).
 
WRInaute accro
user2home a dit:
Je vais essayer d'être plus précis, en admettant que un input text permette d'executer un alert("alert") javascript, j'ai fais quelques recherche. Les divers articles décrivent ca comme une faille dite XSS, mais en finalitée ormi faire apparaître une jolie fenêtre au rechargement cela peut il être vraiment préjudiciable ?

Oui pas dangereux enfin tout dépend du contexte ... imagine 5 seconde une frame invisible en superposition de ta page qui collecte un login par exemple...

J'ai constaté deux fois ce genre de souci.
* le premier permettait (certes avec un coup de chance) de récupérer les login d'un usager depuis son poste utilisateur (il fallait bidouiller la page in situ) -> le formulaire de connections renvoyait le contenu du pseudo non nettoyé en cas d'échec.
* Dans le second cas le param affiché passait via une url ce qui permettait d'envisager du fishing de grande envergure via une campagne de spam avec un lien pourri contenant le code offensif (qui pointait bien sur le domaine légitime)

Sans une vision de la page ou du site qui pose souci il est difficile de dire si oui ou non tu est en sécurité.

Mais pour aller plus loin les failles XSS sont intolérables car même si elle ne présentent pas un danger pour le site, elle sont révélatrices d'un code faible, et poussera peut être un fouineur a chercher plus loin.
 
WRInaute occasionnel
zeb a dit:
Mais pour aller plus loin les failles XSS sont intolérables car même si elle ne présentent pas un danger pour le site, elle sont révélatrices d'un code faible, et poussera peut être un fouineur a chercher plus loin.

C'est justement pour ca que j'essai de comprendre le sujet, je fais des test en local sur le site que je développe, je trouve les symptômes de divers grosses faille mais sans réussir à les exploiter, donc soit je suis très mauvais soit la code commence à donner quelque chose de correct.

Lorsque l'on fait un <object data="https://www.google.fr"> dans une page via un bouton input text et que la page inclut bien l'object mais avec l'index du site cela est dut à quoi, car c'est ce qui ce produit sur mon index mais je ne trouve pas à quoi cela est du.... :)
 
WRInaute accro
Ton input qui fonctionnait avec le <h1>, pr imaginer tout ce qu'on pourrait faire, tu y mets par l'exemple:
PHP:
<span class="syntaxhtml"><span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><</span><span class="syntaxdefault">script</span><span class="syntaxkeyword">></span><span class="syntaxdefault">alert</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'0wn3d'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"></script><br /></span></span>

J'ai déjà eu un script de livre d'or piraté car j'avais oublié le strip_tags(), on m'avait injecté une redirection en JS.
 
WRInaute accro
spout a dit:
J'ai déjà eu un script de livre d'or piraté car j'avais oublié le strip_tags(), on m'avait injecté une redirection en JS.
Ah ! c'était toi ... :lol: :arrow:
 
Discussions similaires
Haut