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

Bash Invoker

GENEWQ

New member
11.06.2020
3
0
BIT
0
echo "CTF{FLAG_WAS_HERE}" | rev | sed -En "s/A/9/pg" | base64 | sed -En "s/=/*/p" | rev | sed -En "s/R/o/pg" | od -A n -t x1 | base64 | gzip -5 | base64 | rev > flag.enc
Содержимое файла flag.enc:
==AAAEQLtb9UhtxyH7hO6+/85MfLw8zpLX7HyUMl5br9IxN5C+h3bneZx8QTv3r5UXetH9XVfztfvfO4VZ4mALH8uPLYh6/tfITYSIujwqCctBT5XCKeaky+zoiTTU1vsPbvfw77+M0hzZD2n4v+9NHpSxxOdZQaIcWKEYCIOX3EP1L4GABIDrQsPX6AA8V3f0NAIs4H

Может у кого-нибудь есть идеи?
 

KaPToHHbIu_EHoT

Green Team
08.11.2020
79
13
BIT
0
Идея очевидна )
Вот список операций, которым подверглась некая строка.
echo "CTF{FLAG_WAS_HERE}" | rev | sed -En "s/A/9/pg" | base64 | sed -En "s/=/*/p" | rev | sed -En "s/R/o/pg" | od -A n -t x1 | base64 | gzip -5 | base64 | rev
Результатом этих операций явилась последовательность знаков:
==AAAEQLtb9UhtxyH7hO6+/85MfLw8zpLX7HyUMl5br9IxN5C+h3bneZx8QTv3r5UXetH9XVfztfvfO4VZ4mALH8uPLYh6/tfITYSIujwqCctBT5XCKeaky+zoiTTU1vsPbvfw77+M0hzZD2n4v+9NHpSxxOdZQaIcWKEYCIOX3EP1L4GABIDrQsPX6AA8V3f0NAIs4H

Для получения исходного значения, нужно подвергнуть полученный набор знаков обратной последовательности операций.
 

KaPToHHbIu_EHoT

Green Team
08.11.2020
79
13
BIT
0
я не сильно разбираюсь в \этих командах но буду очень благодарен помощи
Та ладно тебе, скромняга ))
Разбираешься ты во всём получше чем кто-либо ))

Строка подвергнута простейшим операциям из командной оболочки linux.
Не ленись, погугли часок))

На определённом этапе реверса, когда нужно отреверсить операцию
od -A n -t x1
нужна дополнительная информация:
- удаляет ли данная операция дубликаты строк.
Если данная операция удаляет дубликаты строк, то реверс - невозможен, так как невозможно узнать, какие строки удаляются и сколько раз они дублировались до применения команды.
Продолжение реверса возможно лишь при условии, что операция не удаляет дубликаты строк.
Более авторитетный, чем я источник для подтверждения данного утверждения:
Команда, которую вы дали, удаляет дубликаты строк. Чтобы отменить команду, вам нужно будет вернуть эти повторяющиеся строки обратно, что требует от вас знать, сколько раз каждая строка была продублирована. Но команда, которую вы дали, также удаляет эту информацию.

└─$ cat revers.sh

Код:
#! /bin/bash
my_var="==AAAEQLtb9UhtxyH7hO6+/85MfLw8zpLX7HyUMl5br9IxN5C+h3bneZx8QTv3r5UXetH9XVfztfvfO4VZ4mALH8uPLYh6/tfITYSIujwqCctBT5XCKeaky+zoiTTU1vsPbv>
echo $my_var|rev|base64 -d|gzip -5 -d|base64 -d|xxd -p -r|sed -En "s/o/R/pg"|rev|sed -En "s/\*/=/p"|base64 -d|sed -En "s/9/A/pg"|rev

┌──(user㉿kali)-[~]
└─$ bash revers.sh
CTF{APrSTnYscdn4gHBT}

Но, ответ не верный.
Потому что если проделать проверку
echo "CTF{APrSTnYscdn4gHBT}" | rev | sed -En "s/A/9/pg" | base64 | sed -En "s/=/*/p" | rev | sed -En "s/R/o/pg" | od -A n -t x1 | base64 | gzip -5 | base64 | rev

, то искомая строка почему-то не получается.
Вот что получается:
BOkwOg3VdLsfYv1ZsDbZ4Uv8zBBUQvDWGISi7AadVJHnHoOJG67dDBBMD6QsKWyAAAAAAAAAIs4HLsJ71XPX1HL8Oz+HvWVyWe73xLqowVEXCsBoJSjqc2PkwGFM13gYvz3Eyj/TMp95ydNbbLglHuW=AAAAo47nxhY

Нужно более внимательно проверить, где допущена ошибка.
Если ошибки нет, то всё-таки операция
od -A n -t x1
удалила какие-то дубликаты и реверс - невозможен.
 
Мы в соцсетях:

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