Защищаем Скрипты И Находим В Них Уязвимости Php

CodeDog

Участники
Сообщения
5
Реакции
12
Баллы
1,700
Приступим!
Что нужно иметь: Notepad++, Клавиатуру, Мышь, Руки и маловероятный базовый PHP знаний)

Для начала (Это только 1 часть) мы попробуем найти самые простые уязвимости!
Для этого жмем CTRL+F и ищем следующее (С каждой новой строки новый запрос)

Код:
echo $_GET
echo $_POST
echo $_COOKIE

Если что то нашел... То это уязвимость XSS...
Место обычного echo $_GET['id'] мы можем сделать так: echo($_GET['id'])

Теперь рассмотрим более важные уязвимости под названием UsePhpInj
Жмем CTRL+F и ищем следующее (С каждой новой строки новый запрос)

Код:
echo eval($_GET
echo eval($_POST
echo eval($_COOKIE

Вот это то что не стоит делать)
Как защититься от XSS? Очень просто место обычного вывода массива, обрабатываем его и получается не

Код:
echo $_GET['id']

А

Код:
 echo htmlspecialchars($_GET['id'])

Так-же мы можем проделать и с POST\Cookie

Теперь перейдем к Sql inj
Жмем CTRL+F и ищем следующее (С каждой новой строки новый запрос)
Можно заменить id на свое, а кавычки поменять на апостроф, а так-же мы можем убрать\добавить пробелы

Код:
where id=" . $_GET
where id=" . $_POST
where id=" . $_COOKIE

Если вы хотите более детально разобраться... То:

Код:
. $_GET
. $_POST
. $_COOKIE

И если же вы настолько терпеливый человек то:

Код:
$_GET
$_POST
$_COOKIE

Можно так-же попробовать поставить апостроф в конце запроса!
Что же такое SQL-inj и с чем его едят?
Sql-inj это не отфильтрованный массив с содержимым ARRAY с запросом в базу данных...
То есть есть запрос "SELECT * WHERE id=" . $_GET['id']
Тем самым мы получаем власть над запросом...
Если мы введем ?id=1 то все будет хорошо ведь получится
"SELECT * WHERE id=1", а если ?id=1' то
"SELECT * WHERE id=1'" что вызывает ошибку и дает нам доступ в базу данных
Теперь защита....
Место "SELECT * WHERE id=" . $_GET['id'] мы пишем "SELECT * WHERE id=" . mysql_real_escape_string($_GET['id']) Тем самым мы фильтруем запрос $_GET['id']
И мы предотвратили взлом... Тоже самое что с POST и COOKIE!

Теперь перейдем к File-inj или как его ещё называют Php-Inj
Мы ищем

Код:
include($_GET
include($_POST
include($_COOKIE
require($_GET
require($_POST
require($_COOKIE

Как защититься?
Очень просто!

Код:
if(file_exists($_GET['id'] . '.php')) {
include($_GET['id'] . '.php');
}
else
{
exit();
}
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу