Ошибка: Failed to parse the Currency Converter XML document.
$25 758.33
|
Ошибка: Failed to parse the Currency Converter XML document.
$21 810.62
|
Ошибка: Failed to parse the Currency Converter XML document.
$1 921.72
|
Поиск уязвимостей в PHP скриптах для Начинающих
Статья это маленькая, но я считаю полезная =)
1. Если вы читали мою вторую статью то первое что стоит искать, должно было прийти в голову уже... Т.е. первое что мы ищем include($file);
Так же хочеться упомянуть более опытных разработчиков, которые переписывают стандартные функции, если вы столкнулись с такой ситуацией, то надо сначало просмотреть файл с функциями, так же на наличие обращения к include, fopen и т.п.
При обнаружении таковой, ищем в листинге уже не просто include, а его замену... При обнаружении, смотрим не стоят ли на эту переменную фмльтры и не обнуляется ли она в начале скрипта.
2. Поиск SQL inj
Расскажу на практике:
Кусок кода из интернет казино:
if ($send==«1»)
{
mysql_query(«UPDATE users set pass=«$cpass»,name=«$cname»,fam=«$cfam» where login=«$l»»);
echo «»; }
Итак, после нахождения в нём уязвимости, я думал что от нее не будет толку, но как показала практика, есть ...
Итак, мы видим, что при включеных MAGICQUOTES, вмешаться в данный запрос не получится... Но нашлись и такие сервера, которые работали без этой дирeктивы...
Переменные передаются через Формы и самый простой способ вмешаться в запрос это поле Фамилия =) Главное правильно составить запрос, после составления такого запроса «,cash=«20.00» /*
На локальном компьютере, я увидел, что у всех зарегистрированных пользователей баланс стал по 20.00 и это меня и обрадовало и огорчило, так-как не заметил, что обрубаю запрос и не уточняю где надо изменить баланс, потом подредактировав запрос, я составил следующий запрос
»,cash=«20.00» where login=«12»/*
И у пользователя 12 на счету стало 20.00 руб =) После этого я убедился, что все уязвимости важны, таже те которые на первы взгляд кажуться мало важными...