![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 218 Pomógł: 0 Dołączył: 14.04.2004 Skąd: Słupsk, Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
jakie znaczenie ma ten uklad liczb dla PHP/MySQL?
"0x31303235343830303536" mialem kilka atakow typu SQL Injection (chyba nieudanych, albo sie myle?), rozne, ip, rozne daty etc. ale w wiekszosci pojawiaja sie wlasnie te liczby... zgooglowanie ich wywoluje linki do roznych stron o tematyce finansowej z linkami wygladajacymi wlasnie na SQL Injection (zawieraja tez UNION ALL) moje pytanie brzmi: do czego one sluza, dlaczego sa uzywane i w ogole co to jest?!?! dam przyklady atakujacych stringow: /?strona=wymien_2&id_waluty_od=-999.9%20UNION%20ALL%20SELECT%200x31303235343830303536-- /?strona=kup-sprzedaj_1&tryb=-999.9%20UNION%20ALL%20SELECT%200x31303235343830303536-- /?strona=wymien_2&id_waluty_od=-999.9%20UNION%20ALL%20SELECT%200x31303235343830303536-- 1 i 3 sa z roznych dat i adresow IP, wiec ten typ wpisu jest z jakiegos powodu popularny... czy ktos wie o co w tym chodzi? pozdrawiam, k. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zwykle dane liczbowe są do SQL przekazywane bez cudzysłowów i apostrofów, zatem dopisanie do niego "UNION ALL SELECT 0x31303235343830303536" Zwróci wszystkie dane jakie są w danej bazie - spróbuj na jakimś starszym phpMyAdminie. Stary trick, już dawno zabezpieczony, ale na dużej ilości darmowych/publicznych hostingów zdarza się starsza wersja.
Np.
Ten post edytował Quadina 4.12.2010, 13:00:05 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 218 Pomógł: 0 Dołączył: 14.04.2004 Skąd: Słupsk, Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
dzieki za wyjasnienie, mam juz jakis obraz sytuacji... bo w sumie wiem jak union dziala, ale nigdy nie korzystalem w praktyce... do tego u mnie te dane nie ida wprost do zapytania, a do funkcji wywolujacej CURL do serwera matki, tamten to przetwarza i wysyla odpowiedz z powrotem, stad obstawiam, ze ataki byly nieskuteczne... ale pewien nie jestem (IMG:style_emoticons/default/smile.gif)
zrobilem test dokladnie tak: (tabela waluty i kolumna kod istnieja, ale tam nie ma zadnych "tajnych" danych)
i otrzymalem nastepujacy blad, to jest to zabezpieczenie czy cos zrobilem zle? MySQL said: Documentation #1222 - The used SELECT statements have a different number of columns no i co oznacza ta duza liczba jak w temacie? dlaczego uzywa sie akurat tej, a nie innej? pozdrawiam, k. |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Komunikat sygnalizuje jedynie, że oba zapytania SELECT zwracają różną liczbę kolumn i dlatego masz błąd. Zapewne masz inne wersje, gdzie po przecinku masz jeszcze kolejne. Ustaw więc by oba SELECT zwracały taką samą ilość kolumn. A liczba ta jest zapisana w postaci hex o czym świadczy 0x z przodu.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ta liczba 0x31303235343830303536 to kolejne znaki 31 30 32 35 34.... miały one rozwiązać problem różnej ilości kolumn tak aby wydrukować na maksa wszystko. [Nie]stety masz już nową wersję mySQL gdzie ta opcja już nie działa ;-)
Mam gdzieś exploita na drugim dysku w domu, to po powrocie poszukam i Ci wyśle. Kiedyś bawiłem się tym, bo było dość popularne przy wyciaganiu np. haseł ze storn zabezpieczonych mysql_real_escape_string(); obecnie ta funkcja już jest tak mocna, ze chyba nie da się jej obejść nie wykonując jakiegoś overbuffer. Ten post edytował Quadina 4.12.2010, 18:02:38 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Takie bzdety są w niemal każdym bocie używanym przez "script kiddies" i różne organizacje typu "bla bla security team", działa podobnie jak google, tyle że podmienia wszelkie możliwe zmienne w stringu i bada efekt zwrotny. Dlatego też uważam, że nie warto wyświetlać jakiejś strony błędu (bo to zawsze jakieś info), tylko uparcie przekierowywać, zwykły user prędzej czy później zawsze zgłosi błąd a boty niech giną (i oczywiście nie kłóci się to z koncepcją, by błędne żądania logować).
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 218 Pomógł: 0 Dołączył: 14.04.2004 Skąd: Słupsk, Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
dzieki, to juz "wszystko" wiem (IMG:style_emoticons/default/smile.gif) )
generalnie podoba mi sie, ze to co zrobilem... dziala (IMG:style_emoticons/default/smile.gif) ... uzycie czegokolwiek typu SQL Injection w adresie (strpos na script uri i query string) z automatu wywoluje skrypt banujacy IP na serwerze matce a to powoduje natychmiastowe bany na wszystkich serwerach podpietych do tego... wada jest to, ze nie mozna dawac apostrofow bez slasha i komend sqlowych w get, ale i tak ich nie uzywalem, wiec nie "ma bolu"... (IMG:style_emoticons/default/winksmiley.jpg) czy jeszcze na cos powinienem uwazac? k. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 03:53 |