write-up/pwnable
[HackCTF] RTL_World

32bit ELF

일단 실행시켜보면, 이렇게 뜬다.



여러개를 입력 해보니, buf가 입력을 받는 버퍼이고, case 5에서 read() 함수로 입력을 받고 있다.
이 부분에서 BOF를 일으키면 될 것 같다.
buf = [ebp-0x8c] --> 140byte
read(0, &buf, 0x400u = 1024byte)
>> buf의 크기보다 더 많이 입력받을 수 있기 때문에 BOF 가능.
system() 함수를 이용하여 RTL 공격을 해보자!
준비물: system 함수 주소, "/bin/sh" 인자, RET
1) /bin/sh

>> 0x08048eb1
2) system() 함수 주소

>> 0x080485b0
★ 페이로드
dummy[144] + system() 함수 주소 + dummy[4] - (argc 자리) + "/bin/sh"


'write-up > pwnable' 카테고리의 다른 글
| [HackCTF] ROP (2) | 2019.10.05 |
|---|---|
| [HackCTF] x64 Buffer Overflow (0) | 2019.10.04 |
| [HackCTF] 내 버퍼가 흘러넘친다!!! (0) | 2019.10.04 |
| [HackCTF] Basic_FSB (0) | 2019.10.04 |
| [HackCTF] Basic_BOF #2 (0) | 2019.10.04 |
댓글