собственно зачем использовать sleep(), если выводится «Произошла ошибка»? Ведь можно воспользоваться обычной техникой Blind SQL-Injection. Причем sleep() есть только в MySQL > 5.0, в более ранних версиях нужно использовать benchmark()
Однажды пытался похожим методом вслепую получить информацию из БД с неизвестной структурой. Получил количество БД на сервере, название рабочей БД, количество таблиц в ней, названия нескольких таблиц и несколько полей в одной из таблиц. После этого плюнул и забил. Слишком нужно все это было. Да и такая аномальная активность легко вычисляется в логах. Понятно, что весь процесс можно автоматизировать и в сети достаточно для этого средств, но было интересно все же вручную.
Интересно, многим ли приходилось находить подобные уязвимости и получать хотя бы информацию о структуре? Помнится, что в какой-то период жизни искал сайты подверженные SQL Injection в качестве спортивного интереса, но нашел только один, который делал мой товарищ, более сайты с явными дырками не встречал.
А если говорить о внутрикорпоративных системах, коих у нас тысячи, и говорить о взломе такой системы сотрудником копании изнутри — то тут совсем другая статистика.
Например, по моим личным наблюдениям, внтури «корпораций» процент IE 6 .0 порядка 20-30%
Это мне напоминает анекдот, про студента который все учил про блох.
Придя на экзамен у него спросили про рыб.
На что студент сказал,
Если бы рыбы жили на берегу — у них была бы шерсть.
А раз была бы шерсть то в ней водились блохи.
А блохи это…
MySQL: Взламываем черный ящик