winwarrior
Messages postés654Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention10 février 20091 4 févr. 2009 à 00:29
Il suffit de rajouter un htaccess dans le dossier et voilà, plus de problème de sécurité.. Par contre j'aurais plutot mis ce code sur javascriptfr (vu le peu de php).
Sinon quelques idées d'amélirations :
- var root="root@kiki67100:~# ";
T'as des commandes unix pour recuperer le vrai utilisateur (whoami) et le vrai host (hostname), ça pourrait être sympa qu'il le récupere dynamiquement au chargement du script..
- Pareil pour le nom du dossier, "~" c'est le dossier utilisateur, ça pourrait être sympa qu'il indique le dossier courant (pwd), comme un vrai shell
- Pareil pour le "#" qui indique que l'utilisateur est root.. Ca parrait peu probable pour un serveur web, je pense que dans 99,9% des cas, un "$" serait plus convenable
- Pourquoi avoir créé les fonctions ajax_load() et ajax_end() comme elles sont appellées qu'a un seul endroit (une fois) ?
- Tant qu'à faire, pourquoi ne pas se passer de shell.php et rester sur la meme page, genre en haut de la page: "if(isset($_GET['shell'])) { echo shell_exec($_GET['shell']); die(); }"
- Un dernier truc sympa (et l'interet que ça aurait eu de le faire en ajax plutot qu'avec une banale iframe), ça aurait été de garder un historique des commandes passées
Bon courage,
@+
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 4 févr. 2009 à 00:22
A mon avis, ton code aurait plus ses chances (j'ai pas dit TOUTES ses chances), du côté Javascript de Codes-Sources.
Car sur Phpcs, si l'on ne regarde que le côté PHP, il n'y a qu'une condition et une fonction appelée.
Si l'on veux pousser le vice, il n'y a aucun tests effecutés sur le retour de la fonction, aucune action effectuée si la condition n'est pas remplie, aucuns tests de sécurité (même si ce n'était pas à l'ordre du jour, je te l'accorde).
Je (on) ne veux pas te décourager de ton travail. Je sais que lorsque l'on publie une de ces sources, c'est parce que l'on en est fier. Mais imagine toi crée une petite bête toute mignone, tu as raison d'être fier de toi, tellement que tu veux la déposer dans la savane. Je te laisse imaginer la suite ? ;)
Il ne faut pas te décourager !
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 3 févr. 2009 à 23:35
Salut,
Penser sécurité c'est OBLIGATOIRE, INDISPENSABLE et CAPITAL quand on exécute directement une commande shell qui vient d'une entrée utilisateur !!
Ne pas le faire, c'est mettre son serveur ENTIER en danger !
Avertissement donc : cette source est dangereuse en l'état, ne l'utiliser qu'en local à des fins didactiques !
Du coup, j'ai même pas regardé tellement shell.php est une monstruosité, l'exemple type de ce qu'il ne FAUT PAS faire... Désolé...
kiki67100
Messages postés313Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention10 août 20131 3 févr. 2009 à 22:19
CODEFALSE, je n'ai pas penser à le securité dans ce code ( encore heureux ..). J'ai trouver le résultat assez sympa, alors je l'ai partager.
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 3 févr. 2009 à 21:58
En fait, j'aurai une seule question : pourquoi faire ?? Non, vraiment, je suis curieux ! :)
Parce qu'en lisant ta source, j'ai tous mes capteurs orientés sécurité qui clignotent rouge dans tous les sens :p
4 févr. 2009 à 00:29
Sinon quelques idées d'amélirations :
- var root="root@kiki67100:~# ";
T'as des commandes unix pour recuperer le vrai utilisateur (whoami) et le vrai host (hostname), ça pourrait être sympa qu'il le récupere dynamiquement au chargement du script..
- Pareil pour le nom du dossier, "~" c'est le dossier utilisateur, ça pourrait être sympa qu'il indique le dossier courant (pwd), comme un vrai shell
- Pareil pour le "#" qui indique que l'utilisateur est root.. Ca parrait peu probable pour un serveur web, je pense que dans 99,9% des cas, un "$" serait plus convenable
- Pourquoi avoir créé les fonctions ajax_load() et ajax_end() comme elles sont appellées qu'a un seul endroit (une fois) ?
- Tant qu'à faire, pourquoi ne pas se passer de shell.php et rester sur la meme page, genre en haut de la page: "if(isset($_GET['shell'])) { echo shell_exec($_GET['shell']); die(); }"
- Un dernier truc sympa (et l'interet que ça aurait eu de le faire en ajax plutot qu'avec une banale iframe), ça aurait été de garder un historique des commandes passées
Bon courage,
@+
4 févr. 2009 à 00:22
Car sur Phpcs, si l'on ne regarde que le côté PHP, il n'y a qu'une condition et une fonction appelée.
Si l'on veux pousser le vice, il n'y a aucun tests effecutés sur le retour de la fonction, aucune action effectuée si la condition n'est pas remplie, aucuns tests de sécurité (même si ce n'était pas à l'ordre du jour, je te l'accorde).
Je (on) ne veux pas te décourager de ton travail. Je sais que lorsque l'on publie une de ces sources, c'est parce que l'on en est fier. Mais imagine toi crée une petite bête toute mignone, tu as raison d'être fier de toi, tellement que tu veux la déposer dans la savane. Je te laisse imaginer la suite ? ;)
Il ne faut pas te décourager !
3 févr. 2009 à 23:35
Penser sécurité c'est OBLIGATOIRE, INDISPENSABLE et CAPITAL quand on exécute directement une commande shell qui vient d'une entrée utilisateur !!
Ne pas le faire, c'est mettre son serveur ENTIER en danger !
Avertissement donc : cette source est dangereuse en l'état, ne l'utiliser qu'en local à des fins didactiques !
Du coup, j'ai même pas regardé tellement shell.php est une monstruosité, l'exemple type de ce qu'il ne FAUT PAS faire... Désolé...
3 févr. 2009 à 22:19
3 févr. 2009 à 21:58
Parce qu'en lisant ta source, j'ai tous mes capteurs orientés sécurité qui clignotent rouge dans tous les sens :p