Điểm:0

How can I decrypt an RC4 encrypted text when knowing the first 8 characters of the plain text secret?

lá cờ cn

I'm having difficulty decrypting a secret message as a part of a CTF and I was wondering how could I decrypt an encrypted text that has been encrypted with pycrypto RC4 and when the first 8 characters of the plain text secret are know. Here is the secret that is in the code:

secret = b'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'

and here are the first 8 characters of the decrypted text: VQ0NCgAA

Also here is the full provided code for anyone wondering:

import base64
import marshal
import io
from Crypto.Cipher import ARC4
key = input('Enter correct key: ').encode('utf8')
cipher = ARC4.new(key)
secret = b' ---- snip -----'
plain = cipher.decrypt(base64.b64decode(secret))
if b'VQ0NCgAA' == plain[:8]:
    print('Correct')
    bytescode = io.BytesIO(base64.urlsafe_b64decode(plain))
    bytescode.seek(16)
    implant = marshal.load(bytescode)
    exec(implant)
else:
    print('Wrong')

Sorry if this is a noob question but I'm new to cryptography and really curious on how something like this can be achieved.

Điểm:1
lá cờ ar

Cách tiếp cận rõ ràng sẽ là vũ phu nó. Có thể khóa ngắn, hoặc một cái gì đó giống như một từ điển. Ít nhất tôi không thể nghĩ ra cách nào tốt hơn.

ps. Sau khi bạn tìm thấy khóa, tôi hy vọng bạn sẽ không chạy mã đó mà không sửa đổi nó trước. Nếu tiền tố khớp, nó sẽ tải và thực thi bất kỳ mã nào trong tải trọng được mã hóa. Bạn có hoàn toàn tin tưởng 100% rằng nó sẽ không phá hỏng hệ thống của bạn hoặc cài đặt một cửa hậu ẩn không? Tôi sẽ không...

lá cờ cn
vâng, tôi đã thử nó với danh sách từ rockyou.txt. Tôi có nên thử nó với các danh sách từ khác hay tôi nên thử các chuỗi ngẫu nhiên? Và vâng, đừng lo lắng, tôi đã thay đổi tập lệnh thành chỉ in ra đầu ra và không thực thi nó
Điểm:0
lá cờ in

Câu trả lời dường như là tìm đúng chìa khóa. Có lẽ bạn nên cố gắng hơn nữa?

Tôi đã tìm thấy một khóa tạo ra văn bản gốc mong muốn, mã cấy in ra R0VOWntoMG5leV9oMG5leV9oMG5leV9wMHRfZnVsbF9vZl9tMG5leX0K. Tuy nhiên, có vẻ như đây chỉ là rác. Có lẽ cũng có những câu trả lời khác.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.