Наверное, ни для кого не секрет, что плохой код может привести к печальным последствиям.
Это особенно актуально для веб-сайтов.
Недавно, читая статью о том, какие ошибки допускают PHP-программисты и какие в результате этого появляются уязвимости на сайте, я наткнулся на Local File Inclusion. Эта уязвимость меня очень заинтересовала и я решил что-нибудь сломать и изучить подробнее.
После недолгих поисков на одном из форумов нашел ссылку на немецкий сайт. http://www.gamecaptain.de .
Мы сразу заметили интересные параметры в адресной строке
Давайте попробуем что-нибудь из этого извлечь.
Для начала давайте получим исходный код index.php
Мы использовали фильтры преобразования.
Пара движений и.
.
у нас есть исходный код файла! Давайте посмотрим, что у нас есть в этом файле.
Я сразу начал искать место, где допустили ошибку немецкие программисты.
Поиски были недолгими
if(!isset($file)) {
if(isset($_POST["file"])) {
$file = $_POST["file"];
} else if (isset($_GET["file"])) {
$file = $_GET["file"];
} else {
if(!isset($sitearea) || $sitearea == "Magazin") {
$file="aktuell.php";
} else {
$file="aktuell_downloads.php";
}
}
}
Еще один яркий пример того, как не надо соединять файлы.
Потом я, конечно, начал искать файл с подключением к базе данных.
Очевидно, это линия require("includes/connect.inc.php");
Мы выполняем ту же операцию, что и для index.php, для include/connect.inc.php.
декодировать полученный набор символов base-64 и получить информацию для подключения к базе данных
Давайте соединим.
Все!
Теги: #ЛФИ #кривые руки #php #информационная безопасность
-
Услуги По Разработке Веб-Сайтов В Мичигане
19 Oct, 24 -
Leap Motion Sdk Доступен Для Разработчиков
19 Oct, 24 -
Как Я Озвучивал Игру
19 Oct, 24