Blind SQL injection (timing)

phpbot

Registered
Добър ден какво ще рече Blind SQL injection (timing) :] нещо отворено от GET и POST :? ли има , при времето
 

nom3r1

Registered
Blind SQL Injection е метод, при който /хакер/ - в повечето случай - псевдо хакер.. Може да се възползва от разликите при генериране на лошо филтрирана входяща заявка.

За разлика от нормалният SQL Injection при Blind SQL Injection няма значение филтрирането на кавички и апострофи. В повечето случай на SQL Injectoion - хакер/псевдо хакер/ би се възползвал от генерирана SQL грешка, в този случай обаче не е нужна грешка, за да се извлекат данни.

Сайтовете използват SQL запитвания изградени, чрез няк'ви клиентски входни данни. Един пример:

Код:
http://site.com/view.php?id=5

Тук би могло да се построй запитване към базата съдържащо GET параметър ID в случая:

[sql]SELECT * FROM `table` WHERE `id` = 5[/sql]

След, което би могло лесно да се генерира резултат съдържащ информацията от базата или няк'ва информация за несъществуващата страницата (view.php?id=), ако в базата няма запис отговарящ на критериите зададени в WHERE.

Тук често срещана грешка е, че се ползва функция като addslashes() или mysql_real_escape_string().

Тъй като предаваните данни са целочислени би трябвало проверката да е за това дали се съдържат само числови стойности. (int)

В повечето случай за проверка дали съществува възможност за Blind SQL Injectoion се ползват стойности като 1=1 и 1=0. Тоест от горният пример:

Код:
http://site.com/view.php?id=5 and 1=1

Тоест

[sql]SELECT * FROM `table` WHERE `id` = 5 AND 1=1[/sql]

1=1 е винаги вярно - тоест би трябвало резултата да е динамична страница с ID 5.

Нямам намерения да давам по конкретни(опасни) примери, 'щото ще дойдат в действие още псевдо хакери.

Винаги използвай (int) когато в променливата GET ще ти е число - това е.
 

Горе