Якуб Шамалек – Выбор за тобой (страница 51)
– Повторяю, речь не о вас.
– Ага. Я не дурак.
– Попробую иначе. Было ли что скрывать Рышарду Бучеку?
Кордицкий взглянул ему в глаза, словно проверял, не насмехается ли тот над ним. А потом рассмеялся. Мокрый смех, переходящий в кашель, слизь, отрывающаяся от горла.
– Что вас так развеселило?
– Нет, нет, в горло что-то попало. – Кордицкий вытер слезы.
Бобжицкий сложил ладони треугольником. Надавить так надавить.
– Я слышал, вам разрешили держать в комнате телевизор. Десять каналов, да? Окно в мир, так сказать.
– А что?
– Вы же не дурак.
У Кордицкого задергалась нога. Так, что задрожал стол.
– Я вам расскажу одну историю, господин прокурор, – произнес он наконец, – совершенно вымышленную. Любые совпадения с реальными людьми и событиями случайны. Вы понимаете?
– Понимаю. – Бобжицкий снял колпачок с ручки. – Я вас внимательно слушаю.
Юлита видела несколько фильмов о хакерах. Темный подвал, мужчина в капюшоне, лицо, освещенное бледным светом экрана. Пальцы танцуют по клавиатуре, все быстрее и быстрее, как у пианиста, играющего крещендо, напряжения добавляет динамичная электронная музыка,
То, что делал Янек, ни в чем не напоминало те фильмы. В поле “логин” он вписал только один символ: апостроф, а потом нажал
– Отлично, – Янек потер руки. – Быстро управимся.
– Я не понимаю… – Юлита напряженно вглядывалась в экран, словно смотрела на один из таких рисунков, которые скрывают в себе другой рисунок, заметный, только если напрячь зрение. Но другой рисунок не появлялся.
– Это значит, что база данных сконфигурирована неверно. Она плохо фильтрует признаки утечки. Иначе мне бы пришло сообщение, что нет такого пользователя.
– Э-э-э…
– Ну, благодаря этому я могу изменить исполняемый запрос, – сказал Янек и вписал в поле “логин” следующую команду. – Ладно, сейчас не мешай, мне нужно пять минут и…
– Стоять, стоять, стоять. – Юлита сложила экран ноутбука, игнорируя протесты Трана. – Мы не так договаривались. Ты должен был мне все объяснить.
– Ну вот я и объясняю.
– Так, чтобы я не чувствовала себя дурой.
Янек погладил усы, вздохнул.
– Юлита, ты понимаешь, чего ты от меня требуешь? – раздраженно уточнил он. – Представь, что ты приходишь на лекцию на четвертом курсе мехмата и надеешься, что тебе объяснят, как решать их задачи. Барышня, вы же ничего не знаете.
Вроде все верно, но ее задело за живое. И еще это “барышня” свысока. “Хрен тебе, парниша, – подумала она, – я от тебя не отстану”.
– Подумай об этом так, – сладко проворковала Юлита. – Какая прекрасная возможность для подающего надежды педагога.
– Но я не… Э-эх. – Янек умолк и открыл бардачок. Он рылся в нем, пытаясь что-то отыскать среди мятых бумажных платочков и конфетных фантиков. Наконец извлек пожелтевший мятый блокнот и черный фломастер.
– Будь так добра, сосредоточься, хорошо? Представим, что доступ к этой базе данных есть у некоего Яна Малиновского. Когда ты вписываешь в поле “логин” “Малиновский” и нажимаешь
Фломастер заскрипел по бумаге, у Янека оказался ужасный, корявый почерк. Он дописал и передал блокнот Юлите.
– То есть ты велишь компьютеру, чтобы из категории “пользователи” он выбрал пользователя по фамилии “Малиновский”.
– Понятно?
– Понятно.
– Невероятно. Продолжай в том же духе. – Янек забрал у нее блокнот. – Слово
– Но как?
– Способов несколько. – Янек снова открыл ноут. – Может, начнем со списка пользователей, так проще всего…
Янек стучал по клавишам. В поле “логин” появился короткий текст: admin’ OR,1’=’1.
– Простой трюк, – сказал он. – База данных должна прочитать «OR» как любое другое слово, но из-за ошибки с апострофом, о которой я тебе говорил, он воспримет это как часть команды. То есть мы говорим компьютеру: назови пользователя по имени “admin” или – и это “или” самое важное – такого пользователя, для которого один равно одному. И вот тут-то бедная программа сходит с ума, потому что это всегда правда, один равен одному, это условие верно для любого пользователя. – Увидев, что Юлита уже открывает рот, чтобы что-то сказать, Янек остановил ее жестом. – Умоляю, не проси меня объяснять все в деталях, иначе мы просидим тут до утра, окей? Просто смотри.
Янек нажал
JLipski
KPorebski
ZMikolski
AFalecka
HKupiec
WChrusciel
JSwierzynska
PBaranski
MZych
MNicgorska
ARabiega
MTomaszkiewicz
BBlacha
AMotyka
DMichalski
– Отлично. – Янек стукнул пальцем по экрану ноутбука. Только теперь Юлита заметила, что экран очень грязный: весь в жирных пятнах и в пыли. – Кого выберем?
– Это имеет какое-то значение?
– Никакого.
– Хм… – Юлита наклонилась, – тогда пусть будет Хрущель. У моей учительницы польского в начальной школе была такая фамилия. Ничего так тетка, только…
– Пусть будет Хрущель, – Янек не дал ей закончить. – Мы знаем, что у нас есть пользователь по фамилии ВХрущель, да? Владимир, Ванда, Вацлав, неважно. Вопрос в том, какой у него пароль. Есть несколько способов это выяснить… Например, мы можем использовать такую команду. Смотри.
Янек поскрипел фломастером по бумаге и передал Юлите блокнот. ‘OR EXISTS(SELECT * FROM users WHERE username=’WChrusciel’ AND password LIKE ‘%a%’) AND ‘’=’.
– Оке-е-ей… – Юлита почесала шею. Кожа была липкая. Вот бы принять долгий, горячий душ… – Выбери из пользователей пользователя по фамилии ВХрущель и пароль… Дальше я уже не знаю.
– В принципе мы спрашиваем, есть ли в пароле буква “а”.
– И как, есть?
– Не знаю, – Янек пожал плечами. – Если есть, то мы войдем. Если нет, то появится сообщение, что пароль или имя пользователя неверны, тогда попробуем еще раз. Готова?
– Ага.