SCIST Python CTF - Writeup
PPC
Department store anniversary 100
題目要求進行100次買二送一的挑戰。將商品價格排序後,為了讓免費商品價值最大,我們應該總是選擇清單中價格最高的商品來付費,並讓緊隨其後價格第三高的商品作為免費回饋。
from pwn import *
HOST = "210.70.138.221" PORT = 10007
r = remote(HOST, PORT)
for i in range(100): r.recvuntil(b'----- wave ' + str(i+1).encode() + b'/100 -----\n') text = r.recvline().decode().strip() num_str = text.split(':', 1)[1].strip() nums = list(map(int, num_str.split())) nums.sort(reverse=True) s = sum([nums[j] for j in range(2, len(nums), 3)]) print(f"[+] Wave {i+1}/100: Answer = {s}") r.sendlineafter(b'answer : ', str(s).encode())
print(r.recvall().decode('utf-8'))
r.close()
|
執行腳本後,程式會自動完成 100 次挑戰,最終回傳包含 Flag 的訊息。
hsctf{You_got_the_highest_reward!}
|