RicH and FamouS

       Home         Glosar IT                                                                                                                                                                                                              SUBSCRIBE NOW!
        

16.06.2009

FAQs - №1

Problema: Cum e posibil transmiterea de fişiere de pe un server pe altul fară implicarea utilizatorului şi fară necesitatea de copiere a acestuia pe computerul propriu?

Rezolvare: Desigur pentru rezolvarea acestei probleme se poate utiliza FTP, dar eu totuşi aş prefera să scriu în PHP 2 scripturi:
  • Script-server server.php, care transmite conţinutul fişierului în următoarea cerere-POST:
    Cod:
    POST http://host.com/client.php HTTP/1.0
    Host: host.com
    Content-Type: multipart/form-data;
    boundary=1BEF0A57BE110FD467A
    Content-Length: numărul_de_simboluri_in_fişier (funcţia strlen())

    - 1BEF0A57BE110FD467A
    Content-Disposition: form-data;
    name="file";
    filename="NUMELE_FIŞIERULUI.TXT"
    Content-Type: application/octet-stream
    Content-Transfer-Encoding: binary
    - 1BEF0A57BE110FD467A --
    Connection: Close
    Semnătura: conţinutul fişierului
  • Script-client client.php, care prinde fişierul încărcat din $_FILE['file']['tmp_name'].
_____________________________________________________

Problema:
În ce mod se poate de executat system commands în web-shell cu ajutorul PHP, dacă este activat Safe-mode şi nu am posibilitatea să încarc un web-shell în Perl?

Rezolvare: De ce oare toţi ţin minte despre executarea system commands cu ajutorul Perl şi PHP, şi din contra toţi uita despre un astfel de lucru precum SSI (Server Side Includes).
Acestea sunt directivele în fişiere de tip shtml, care se execută de către web-server fară ajutorul utilizatorului. Cu ajutorul SSI se poate de creat lucruri destul de interesante: începînd cu includerea de fişierelor şi terminind cu executarea de system commands. Deci SSI se include direct în corpul paginii web în forma:
Cod:
<_html>
<_body>
<_!--#exec cmd="ls - la/; cat/etc/passwd">
<_/body>
<_/html>
P.S. Toate _ din cod se elimina
Desigur, cînd vei intra pe site tu vei vedea executarea directivelor date de tine "ls - la/" şi "cat/etc/passwd". :)

    Blog din Moldova    FastCounter 

 
Copyright © 2008-2010 Foster1. All rights reserved.