BYU CTF 2023 - Shellcode (shellcode)
You’ll have to make your own shellcode for this one!
nc byuctf.xyz 40017
tag: medium
- [51 solves / 452 points]
Analysis
소스 코드가 주어져 있다.
1 |
|
0x777777000 주소부터 실행권한을 주었다. 그리고 10바이트씩 shellcode를 입력한다. 이때 10바이트 null이 생긴다. 마지막엔 0x777777000을 실행시킨다. 바로 든 생각은 처음에 shellcode를 입력할 때 read(0, 0x777777000, size)
syscall을 입력하면 10바이트 띄엄띄엄 입력하는 한계를 없앨 수 있겠다고 생각했다. 단 내가 가장 실행하고 싶은 syscall이 10바이트 이내여야 한다.
다행히 마지막 call shellcode를 할 때 레지스터 상황은 아래와 같았고, mov rsi, rdx
와 syscall
을 실행시킴으로써 내 의도대로 문제를 풀 수 있었다.
1 | $rax : 0x0 |
Solve
1 | from pwn import * |