Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ATAK SQL INSERTION: 0x31303235343830303536
Forum PHP.pl > Forum > Bazy danych > MySQL
phoenix84
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.
Quadina
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
phoenix84
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 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.
thek
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.
Quadina
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.
Pilsener
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ć).
phoenix84
dzieki, to juz "wszystko" wiem smile.gif)

generalnie podoba mi sie, ze to co zrobilem... dziala 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"... winksmiley.jpg czy jeszcze na cos powinienem uwazac?

k.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.