





Админка
А вот тут, господа хорошие, пора взяться за голову. Но по порядку, чтобы сразу не шокировать.
Начнем опять же с индекса. Того, который в админке.
Ничего нового, все исправляем по образу и подобию:
Но самое интересное только начинается. Что мы видим первой строчкой. А видим мы подключение файла с красноречивым названием "loсk", то бишь "замок".
Посмотрим, на сколько он крепок:
Впечатляет. Куча грозных проверок, обработка данных... Но опять же писано это полнейшим дилетантом. Особенно это место:
Чувствуется рука мастера. Логика железная - если директива magic_quotes_gpc выключена, то данные мы обработаем. Не ясно зачем обе переменных, если в запрос идет только одна, ну да не суть. Суть в другом. А если включена?
Немного экскурса. Вот эти буквы magic_quotes_gpc обозначают ни что иное, как GET POST COOKIE И ни полслова про SERVER. А ведь именно оттуда мы берем данные. Так вот их эта директива не касается.
Я долго искал файл .htaccess, где могла бы быть отключена эта директива. Не нашел. А значит мы становимся заложниками настроек сервера.
Повезло тому, у кого на хостинге эта директива отключена. Но многие, и даже весьма крупные (AGAVA к примеру), держат её в положении On
Чем это грозит. Чтобы понять весь трагизм положения, проведем эксперимент. Поместите в корень сайта файл .htaccess такого содержания:
То есть мы принудительно включим эту директиву, смоделировав такую ситуацию. А теперь фокус-покус. Набираем в поле "логин" такой текст:
1' union select 1/*'
а в поле "пароль" 1(единицу). И - о, чудо! Алчно потирая руки мы заходим в святая святых - админку.
Я не буду исправлять этот скрипт. Вот тут все подробненько описано.
Ну а мы двинемся дальше.
А вот тут, господа хорошие, пора взяться за голову. Но по порядку, чтобы сразу не шокировать.
Начнем опять же с индекса. Того, который в админке.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<? include ("lock.php"); ?> |
Ничего нового, все исправляем по образу и подобию:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php include './lock.php'; ?> |
Но самое интересное только начинается. Что мы видим первой строчкой. А видим мы подключение файла с красноречивым названием "loсk", то бишь "замок".
Посмотрим, на сколько он крепок:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<?php |
Впечатляет. Куча грозных проверок, обработка данных... Но опять же писано это полнейшим дилетантом. Особенно это место:
1 2 3 4 5 6 7 |
|
Чувствуется рука мастера. Логика железная - если директива magic_quotes_gpc выключена, то данные мы обработаем. Не ясно зачем обе переменных, если в запрос идет только одна, ну да не суть. Суть в другом. А если включена?
Немного экскурса. Вот эти буквы magic_quotes_gpc обозначают ни что иное, как GET POST COOKIE И ни полслова про SERVER. А ведь именно оттуда мы берем данные. Так вот их эта директива не касается.
Я долго искал файл .htaccess, где могла бы быть отключена эта директива. Не нашел. А значит мы становимся заложниками настроек сервера.
Повезло тому, у кого на хостинге эта директива отключена. Но многие, и даже весьма крупные (AGAVA к примеру), держат её в положении On
Чем это грозит. Чтобы понять весь трагизм положения, проведем эксперимент. Поместите в корень сайта файл .htaccess такого содержания:
1 2 |
php_flag magic_quotes_gpc On
|
То есть мы принудительно включим эту директиву, смоделировав такую ситуацию. А теперь фокус-покус. Набираем в поле "логин" такой текст:
1' union select 1/*'
а в поле "пароль" 1(единицу). И - о, чудо! Алчно потирая руки мы заходим в святая святых - админку.
Я не буду исправлять этот скрипт. Вот тут все подробненько описано.
Ну а мы двинемся дальше.