1. 문제
NX 가 걸려있다.
system 함수를 쓰지 못할 것으로 보인다.
어쩐지 함수들이 굉장히 많았는데, 정적 링킹 되서 그런 거였다.
gets() 입력 시 bof 가 발생한다.
현재, Nx + aslr 걸려있으며, 주소가 leak 되지 않고 있다. 그런데 정적 링크된 파일이라 system 함수를 이용할 수 없다. 이때 어떻게 쉘을 얻을 수 있을까?
->쉘코드를 bss 영역에 주입하고, mprotect() 함수를 통해 그 영역을 실행 가능하게 하면 된다.
2. 문제 해결 과정
1. gets() 통해 &bss 에 쉘코드 삽입
2. mprotect() 를 이용해 그 영역에 실행 권한 주기
구해야 될 것들
- bss 영역
- gadget
- shellcode (x86 : 25byte)
\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80
- offset
offset = 0x18 + 4 = 28
3. 익스플로잇
'Wargame > HackCTF' 카테고리의 다른 글
[HackCTF] ROP (0) | 2021.04.20 |
---|---|
[HackCTF] Gift (0) | 2021.04.19 |
[HackCTF] Random Key (0) | 2021.04.19 |
[HackCTF] 1996 (0) | 2021.04.18 |
[HackCTF] Yes or no (1) | 2021.04.16 |