<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AES on</title><link>/tags/aes/</link><description>Recent content in AES on</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Thu, 17 Jul 2025 17:57:16 +0100</lastBuildDate><atom:link href="/tags/aes/index.xml" rel="self" type="application/rss+xml"/><item><title>Puppet - SummerRush CTF</title><link>/post/sr25-puppet/</link><pubDate>Thu, 17 Jul 2025 17:57:16 +0100</pubDate><guid>/post/sr25-puppet/</guid><description>Click to expand challenge code
import os import secrets import sys import time from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad SERVER_KEY = secrets.token_bytes(16) FLAG = os.environ.get(&amp;quot;FLAG&amp;quot;, &amp;quot;FL1TZ{????????????}&amp;quot;) def issue_token(user_id: str) -&amp;gt; bytes: iv = secrets.token_bytes(16) payload = f&amp;quot;uid={user_id}&amp;amp;role=puppet&amp;quot;.encode() cipher = AES.new(SERVER_KEY, AES.MODE_CBC, iv=iv) return iv + cipher.encrypt(pad(payload,16)) def check_token(token: bytes) -&amp;gt; str: iv = token[:16] ct = token[16:] cipher = AES.new(SERVER_KEY, AES.MODE_CBC, iv=iv) pt = cipher.decrypt(ct) print(f&amp;quot;Decrypted token: {pt!</description></item></channel></rss>