begin process at 2012 05 28 22:55:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

faille XSS pour pro :(


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

faille XSS pour pro :(

samedi 19 mai 2007 à 16:51:33 | faille XSS pour pro :(

gfpl

Bonjour, en esperant trouver qq qui puise m'aider a combler ma faille XSS

voila la faille de type index.php ?>'><ScRiPt%20%0a%0d>alert(1687822802)%3B</ScRiPt>.

passe chez moi j ai essayer pas mal de truc mais rien a faire
j'apelle mes page comme ceci
index.php?page=login
index.php?page=vente
...
comment faire pour corriger cette faille
a saoir que elle passe de cette facon suivante dans l url:

index.php?lang=%3E'%3E%3CScRiPt%20%0a%0d%3Ealert(1687822802)%3B%3C/ScRiPt%3E

si le mot script est ecrit comme ceci script il ne se passe rien si il devientScRiPt
alors le script s'execute

j ai essayer differents methode sans succes:

htmlspecialchars(stripslashes($_POST));
htmlspecialchars(stripslashes($_GET));

$page = htmlspecialchars($page);
$page=str_replace("%3E","",$page);
htmlentities($host, ENT_QUOTES, 'UTF-8');
//
RemoveXSS($_POST);
RemoveXSS($_GET);
RemoveXSS($pageOK);

si vous avez une solution je prend :) la je suis bloquer et dans la M**


samedi 19 mai 2007 à 17:23:39 | Re : faille XSS pour pro :(

neigedhiver

Salut,

Je comprends pas bien... c'est quoi le code de ta page pour que ce script s'exécute.. ?
samedi 19 mai 2007 à 17:50:49 | Re : faille XSS pour pro :(

gfpl

[php]
<?php
function RemoveXSS(&$val) {
   // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
   // this prevents some character re-spacing such as <java\0script>
   // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs
   $val = preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\x20])/', '', $val);
  
   // straight replacements, the user should never need these since they're normal characters
   // this prevents like <IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>
   $search = 'abcdefghijklmnopqrstuvwxyz';
   $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
   $search .= '1234567890!@#$%^&*()';
   $search .= '~`";:?+/={}[]-_|\'\\';
   for ($i = 0; $i < strlen($search); $i++) {
      // ;? matches the ;, which is optional
      // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars
  
      // &#x0040 @ search for the hex values
      $val = preg_replace('/(&#[x|X]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); // with a ;
      // &#00064 @ 0{0,7} matches '0' zero to seven times
      $val = preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/', $search[$i], $val); // with a ;
   }
  
   // now the only remaining whitespace attacks are \t, \n, and \r
   $ra1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base','ScRiPt');
   $ra2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
   $ra = array_merge($ra1, $ra2);
  
   $found = true; // keep replacing as long as the previous round replaced something
   while ($found == true) {
      $val_before = $val;
      for ($i = 0; $i < sizeof($ra); $i++) {
         $pattern = '/';
         for ($j = 0; $j < strlen($ra[$i]); $j++) {
            if ($j > 0) {
               $pattern .= '(';
               $pattern .= '(&#[x|X]0{0,8}([9][a][b]);?)?';
               $pattern .= '|(&#0{0,8}([9][10][13]);?)?';
               $pattern .= ')?';
            }
            $pattern .= $ra[$i][$j];
         }
         $pattern .= '/i';
         $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); // add in <> to nerf the tag
         $val = preg_replace($pattern, $replacement, $val); // filter out the hex tags
         if ($val_before == $val) {
            // no replacements were made, so exit the loop
            $found = false;
         }
      }
   }
   return $val;
}?>
[/php]

et pour afficher la page

$pageOK = array('site' => 'site.php',
                  'mymenu'=>'mymenu.php',
                  'mydog'=>'mydog.php',
                  'club_v'=>'club_dr.php',
                  'check'=>'wait.php',
                  'support_clientel' => './cgi-bin/ttx/ttx.cgi');

  // On teste que le parametre d'url existe et qu'il est bien autorise
  // -----------------------------------------------------------------
 
$page = htmlspecialchars($page);
$page=str_replace("%3E","",$page);
htmlentities($host, ENT_QUOTES, 'UTF-8');
//
RemoveXSS($_POST);
RemoveXSS($_GET);
RemoveXSS($pageOK);

if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
    //
   
    //
    if(!eregi("http://",'$pageOK')){ //si la page contient http
    RemoveXSS($_GET['page']);
      include($pageOK[$_GET['page']]);
    }

}else{
RemoveXSS($_GET['page']);
      include("chien1.php"); //si erreur retour a cette page
}
samedi 19 mai 2007 à 18:15:29 | Re : faille XSS pour pro :(

gfpl

enfin voila tout mon site est sensible a la dite faille si vous avez une solution quelconque je suis preneur tout ce qui se situe apres le ? est sensible a la faille

?<ScRiPt%20%0a%0d>alert(2050041070)%3B</ScRiPt>.
samedi 19 mai 2007 à 18:21:41 | Re : faille XSS pour pro :(

neigedhiver

Re,

J'aimerais reproduire ta soit-disant "attaque" chez moi, mais je n'y arrive pas...
T'es sûr que c'est pas plutôt ton serveur qui est mal configuré ?

Tu peux me donner un script php et me dire comment l'appeler dans l'url pour reproduire cette "attaque" ?
samedi 19 mai 2007 à 20:16:57 | Re : faille XSS pour pro :(

gfpl

oui mais bon ca ne m aide pas plus
j ai decouvert cette faille surement connue qui ne fonctionne que si script est ecrit comme ca ScRiPt

un example parmis plein d autres

http://www.supanight.com/page/accueil.php/%3E%22%3E%3C?phpinfo();?%3E

mais je n ai spas de soluce a ce jour si tu peut m aider
samedi 19 mai 2007 à 21:12:48 | Re : faille XSS pour pro :(

neigedhiver

Non mais d'accord, mais ton truc, ça exécute pas du PHP de toute façon. C'est comme si je bloquais les CSS, ça changerait bien l'affichage de la page, quoi.
samedi 19 mai 2007 à 21:54:15 | Re : faille XSS pour pro :(

gfpl

non mais ca peut executer du code a toi de changer tu peut faire un alert donc injecter du java script la question est coment empecher ca !!!
samedi 19 mai 2007 à 22:08:31 | Re : faille XSS pour pro :(

neigedhiver

=> URL Rewriting
samedi 19 mai 2007 à 23:15:22 | Re : faille XSS pour pro :(

gfpl

oe mais ca regle pas le probleme de securite on doit pouvoir le faire sans url rewirting perso j essaie de trouver la soluce mais bon je retourne mes variables dans tous les sens je ne trouve pas

1 2 3

Cette discussion est classée dans : script, page, php, index, faille


Répondre à ce message

Sujets en rapport avec ce message

Cherche Script PHP [ par ykc ] Bonjour,Je cherche 1 script php qui me permettrait par methode d'"include()" de n'avoir que la page index.php et les autres s'afficheraien dedans avec Script php, fonction multiple [ par scrodofus ] Bonjour, Voila je vous contact parceque j'aimerai realisser une page php qui je sais pas si c'est simple et ne connait pas comment faire le code. J' problème de redirection si passage de paramètre [ par geff33 ] Bonjour, Voici mon problème que je n'arrive pas à solutionner: je veux faire une redirection dans une page située dans un répertoire du site vers ind page blanche sous firefox (erreur 500 sous IE) lors du chargement de ma page index.php [ par j3r3m067 ] je viens d'installer apache/php/mysql/phpmyadmin sur un poste sous xp mais qd je charge ma page index.php j'ai une page blanche une idée? (en essayant site multilangue avec cookies [ par martiallover ] Bonjour tout le monde je vous poste mon problème je suis entrain de chercher quelle sont les voie plus pratique pour un site multilingue je teste des Script de news [ par 0303 ] Bonjour ! je cherche un script de news en PHP/MYSQL avec ce script on peut poster les différents champs tels que : la page inserer.php Titre de la Menu et Navigation avec PHP [ par salutbonjour ] Bonjour à tous! Ça fait quelque temps que je m'acharne à me monter un site perso. J'ai codé un menu PHP de cette façon: Les liens du menu qui se tro A l'aide : Warning: Cannot modify header information [ par FXPHANTOM ] Bonjour, J'appelle tous les webmasters expérimentés pour résoudre mon problème . J'ai un hébergement mutualisé chez OVH , j'ai installé mon site sur texte du script php affiché dans la page résultat [ par jlarras ] Bonjour, J'ai un petit problème avec php. J'ai téléchargé un script sur le web (PHPSearch), pour avoir un moteur de recherche interne. J'avais essayé une page php [ par ikramta ] bonjour tout le monde. bon j'utilise dreamweaver pour construire mes pages web.dons ma page tout en hot j'inserre un script qui contient mes parametre


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales