티스토리 뷰
입력을 받을 때 buffer 크기를 0x20단위로 올림하여 그 크기만큼의 스택 공간을 확보한다. 그런데 이 때 입력을 다 받고 NULL 문자를 박아주지 않기 때문에 strlen 함수를 호출하면 뒤의 stack frame pointer까지 센다.
이를 이용해 echo 함수에서 우선 stack leak을 얻을 수 있다.
다시 echo rev 함수에서 이를 이용하여 rsp를 조작하고, 이를 이용하여 ret instruction이 실행될 때 shellcode로 뛸 수 있도록 세팅해둔다. (세팅은 echo나 메뉴 고를 때 입력을 엄청 길게 넣어서 해두면 된다)
https://github.com/Eyebrowmoon/ctf/blob/master/secuinside2017/ohce/solver.py
'CTF' 카테고리의 다른 글
SCTF 2017 Final - report (1) | 2017.08.24 |
---|---|
SECUINSIDE 2017 - ruma (0) | 2017.07.02 |
SECUINSIDE 2017 - babyheap (0) | 2017.07.02 |
DEFCON 2017 Quals - faggin (1) | 2017.07.02 |
Christmas CTF 2016 - Nature Dream (0) | 2016.12.25 |
댓글