J'suis pas certain qu'on se couvre de partout avec ça :
if (((isset($_GET['buttonText']) &&
strpos($_GET['buttonText'],'<') !==
false) ||
(isset($_GET['movieName']) &&
strpos($_GET['movieName'],';') !==
false)) &&
strpos($_GET['pf'],'swfupload.swf') !== false) {
{
header('Content-Type: text/plain');
http::head(403,'Forbidden');
exit;
}
}
Franck
Le 13 mars 2013 14:59, Franck Paul <carnet.franck.paul(a)gmail.com> a écrit :
Et faire pareil (ou compléter) pour 'movieName' je suppose.
Franck
Le 13 mars 2013 14:56, Dsls <dsls(a)morefnu.org> a écrit :
Ca ne marchera pas, le bouton est défini par le js. Il faut détecter
> du code malveillant dedans :
>
> En rustine quick&dirty qui colmate la brèche, il faut ajouter dans
> load_plugin_file.php un truc du genre :
>
> +if (isset($_GET['buttonText']) &&
strpos($_GET['buttonText'],'<') !==
> false && strpos($_GET['pf'],'swfupload.swf') !== false) {
> + header('Content-Type: text/plain');
> + http::head(403,'Forbidden');
> + exit;
> +}
>
> Le 13 mars 2013 14:44, Franck Paul <carnet.franck.paul(a)gmail.com> a
> écrit :
> > Bon, va falloir un klingon (en tout cas plus que moi) la dessus.
> >
> > J'ai testé avec ça dans inc/load_plugin_file.php (ligne 52) :
> >
> > if (($pf == 'swfupload.swf') && (count($_GET) > 1)) {
> > if (isset($_GET['buttonText']) || isset($_GET['movieName']))
//
> <--
> > Suis pas certain que ce soit utile
> > {
> > http::redirect('index.php?pf=swfupload.swf');
> > exit;
> > }
> > }
> >
> > Ça a l'air de fonctionner mais en fait je me demande s'il ne vaudrait
> pas
> > mieux renvoyer sur l'accueil de l'admin, voire sur une 404
> >
> >
> > Franck
> >
> >
> > Le 13 mars 2013 14:28, Franck Paul <carnet.franck.paul(a)gmail.com> a
> écrit :
> >
> >> Oui ça serait plus sage en effet, mais il faut que je vois si ça ne
> pose
> >> pas des problèmes d'effet de bord.
> >>
> >> Franck
> >>
> >>
> >> Le 13 mars 2013 14:26, Julien Wajsberg <felash(a)gmail.com> a écrit :
> >>
> >>> je dirais qu'il faut faire une redirection vers"
> >>> /admin/index.php?pf=swfupload.swf" dès que tu détectes d'autre
> paramètres.
> >>>
> >>>
> >>> 2013/3/13 Franck Paul <carnet.franck.paul(a)gmail.com>
> >>>>
> >>>> Et $_GET['movieName'] également puisqu'une faille est
possible via ce
> >>>> paramètre.
> >>>>
> >>>> Franck
> >>>>
> >>>>
> >>>> Le 13 mars 2013 14:23, Franck Paul
<carnet.franck.paul(a)gmail.com> a
> >>>> écrit :
> >>>>
> >>>>> Nope, le pf est tout seul dans le $_GET['pf'], c'est
dans les autres
> >>>>> qu'il faut éventuellement filtrer :
> >>>>>
> >>>>> /admin/index.php?pf=swfupload.swf&buttonText=<a
> >>>>> href='javascript:alert(document.cookie)'>Click
me</a>
> >>>>>
> >>>>>
> >>>>> Donne :
> >>>>>
> >>>>> $_GET['pf'] = 'swfupload.swf'
> >>>>> $_GET['buttonText'] = '<a
> >>>>> href='javascript:alert(document.cookie)'>Click
me</a>'
> >>>>>
> >>>>> Cela dit on pourrait explicitement vider
$_GET['buttonText']
> puisque la
> >>>>> faille vient de là.
> >>>>>
> >>>>> Franck
> >>>>>
> >>>>>
> >>>>> Le 13 mars 2013 14:19, Julien Wajsberg <felash(a)gmail.com>
a écrit :
> >>>>>
> >>>>>> ben c'est surtout le "pf" que tu dois filtrer
je pense, non ?
> >>>>>>
> >>>>>>
> >>>>>> 2013/3/13 Franck Paul <carnet.franck.paul(a)gmail.com>
> >>>>>>>
> >>>>>>> T'as une idée du comment ?
> >>>>>>>
> >>>>>>> Parce qu'à part faire un unset de tous les $_GET une
fois
> récupéré le
> >>>>>>> $_GET['pf'], je ne vois pas.
> >>>>>>>
> >>>>>>> Franck
> >>>>>>>
> >>>>>>>
> >>>>>>> Le 13 mars 2013 09:28, Dsls <dsls(a)morefnu.org> a
écrit :
> >>>>>>>
> >>>>>>>> Le 13 mars 2013 09:25, Julien Wajsberg
<felash(a)gmail.com> a
> écrit :
> >>>>>>>> > vu qu'on est déjà sur du jQuery, je pense
que ça a l'air bien
> >>>>>>>> > ouaip.
> >>>>>>>> >
> >>>>>>>> > Le hack avec swfupload a l'air mineur et on
pourrait attendre
> de
> >>>>>>>> > convertir
> >>>>>>>> > swfupload à jquery file upload, non ?
> >>>>>>>>
> >>>>>>>> On peut aussi filtrer ce qui est envoyé à
swfupload.swf.
> L'avantage
> >>>>>>>> dans dc est qu'il est accessible uniquement via
index.php?pf=
> >>>>>>>> _______________________________________________
> >>>>>>>> Dev mailing list - Dev(a)list.dotclear.org -
> >>>>>>>>
http://ml.dotclear.org/listinfo/dev
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> Dev mailing list - Dev(a)list.dotclear.org -
> >>>>>>>
http://ml.dotclear.org/listinfo/dev
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> Dev mailing list - Dev(a)list.dotclear.org -
> >>>>>>
http://ml.dotclear.org/listinfo/dev
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> Dev mailing list - Dev(a)list.dotclear.org -
> >>>>
http://ml.dotclear.org/listinfo/dev
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Dev mailing list - Dev(a)list.dotclear.org -
> >>>
http://ml.dotclear.org/listinfo/dev
> >>
> >>
> >
> >
> > _______________________________________________
> > Dev mailing list - Dev(a)list.dotclear.org -
> >
http://ml.dotclear.org/listinfo/dev
> _______________________________________________
> Dev mailing list - Dev(a)list.dotclear.org -
>
http://ml.dotclear.org/listinfo/dev
>