HTB-XORXORXOR

Cryptography - Level Easy

السلام عليكم، حبيت أشارككم رايت اب لأني أبي اجرب صراحة وبشوف إن جاز لي الوضع كان بها

(الحقيقة هي جالسة اجرب المواقع و احلل موقعي ) خلاص صدق ببدأ

المنصة مثل ما هو موضح HackTheBox

Type: Cryptography

Challenge: https://app.hackthebox.com/challenges/191

👍 طولتها وهي قصيره فكرته كالاتي يعطينا كود عشان يسوي انكربشن للفلاق

#!/usr/bin/python3
import os
flag = open('flag.txt', 'r').read().strip().encode()

class XOR:
    def __init__(self):
        self.key = os.urandom(4)
    def encrypt(self, data: bytes) -> bytes:
        xored = b''
        for i in range(len(data)):
            xored += bytes([data[i] ^ self.key[i % len(self.key)]])
        return xored
    def decrypt(self, data: bytes) -> bytes:
        return self.encrypt(data)

def main():
    global flag
    crypto = XOR()
    print ('Flag:', crypto.encrypt(flag).hex())

if __name__ == '__main__':
    main()

زي ما هو موضح قدامكم الكود الهدف منه الآن تحللون شلون صار له انكربشن

و للمعلومية ترى عطانا ملف output.txt فيه الفلاق بعد الانكربشن

طريقة الحل المستخدمة فضلت تكون يدويًا، فيه ناس تكتب كود أسهل و أفضل

أول خطوة كانت جبت الXOR table

بعدين بديت أدور عن الkey ، وشفت أنه الkey بيكون متكون من أربعة كراكترز

Process -> will be XORing each byte of the flag with each byte of the key.

def __init__(self):
        self.key = os.urandom(4)

و كلنا نعرف أن بداية أو صيغة الفلاق تكون HTB{ ، بناءً على المعطيات في الكود رحت جبت الhex values حق الحروف و بحولها باينري عشان اقدر اسوي لها xor

Chars (Before Encryption)HexEncrypted Char

H

48

13

T

54

4a

B

42

f6

{

7B

e1

بعد ما طلعنا القيم من التيبل و طلعنا القيم المماثلة لها من الاوتبوت اللي بالملف:

134af6e1297bc4a96f----..for security..----46d84c5282dd7ef292dc9

حولت الhex values إلى binary عشان اقدر اطلع الkey

بعدها اخذت الkey و الoutput و استخدمت أونلاين ديكودر وانحلت

وبس كان ودي اشارككم الفلاق بس حبيت تجربون صراحة سهل وخفيف ✅

Last updated