write-up/pwnable
[HackCTF] 내 버퍼가 흘러넘친다!!!
32bit ELF 파일
setvbuf(stdout, 0, 2, 0): CTF 문제에서 볼 수 있는 사용. 버퍼를 없앤다.
read() 함수로 name을 50byte 읽어온다. (입력받는다.)
gets() 함수로 s 버퍼에 입력값을 받는다.
main+3> 스택에 0x14(=20byte) 공간을 할당한다.
main+69> [ebp-0x14] = s 버퍼 위치
name 버퍼는 어디있나?
name은 전역변수로 선언되어, BSS 영역에 존재하는 것을 확인할 수 있었다.
name은 초기화되지 않은 전역변수로 고정주소 영역을 사용한다고 한다.
>> 고정적인 BSS 영역인 name에 쉘코드를 넣어 RET으로 변조시키면?!
s[20] |
SFP[4] |
RET[4] |
★ 페이로드
1) name에 SHELLCODE 주입
2) NOP[24] + SHELLCODE가 있는 name 주소
이번엔 평소처럼 하니 잘 되지 않아서, 익스플로잇 코드를 짜려고 한다.
제대로 짰는데... flag가 안 나온다...
'write-up > pwnable' 카테고리의 다른 글
[HackCTF] RTL_World (0) | 2019.10.05 |
---|---|
[HackCTF] x64 Buffer Overflow (0) | 2019.10.04 |
[HackCTF] Basic_FSB (0) | 2019.10.04 |
[HackCTF] Basic_BOF #2 (0) | 2019.10.04 |
[HackCTF] Basic_BOF #1 (0) | 2019.10.04 |
댓글