Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ATAK SQL INSERTION: 0x31303235343830303536, co to oznacza???
phoenix84
post
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.
Go to the top of the page
+Quote Post
Quadina
post
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.
  1. SELECT * FROM `cwiczenie` WHERE lekcja>999.9 UNION ALL SELECT 0x31303235343830303536


Ten post edytował Quadina 4.12.2010, 13:00:05
Go to the top of the page
+Quote Post
phoenix84
post
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)
  1. SELECT *
  2. FROM `waluty`
  3. WHERE kod > 999.9
  4. UNION ALL SELECT 0x31303235343830303536
  5. LIMIT 0 , 30


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.
Go to the top of the page
+Quote Post
thek
post
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.
Go to the top of the page
+Quote Post
Quadina
post
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
Go to the top of the page
+Quote Post
Pilsener
post
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ć).
Go to the top of the page
+Quote Post
phoenix84
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 03:53