본문 바로가기
CTF 공부/LOB

[LOB]skeleton

by JJWANIC 2020. 1. 27.

코드를 보니까 전달하는 인자는 최소 한개여야하는데..

문제는 stack destroyer네요.. buffer 값을 44만큼 초기화하고, buffer에서 48 더한곳부터 스택 전체를 0으로 초기합니다.
argv[2]를 사용할 수 없어서 ㅠㅠ...고민 좀 해볼께요.

LD_PRELOAD를 이용해야 풀 수 있다고 그럽니다.!
메모리에 공유 라이브러리 공간이 있는데 이 공간에 Shell code를 넣어놓고 (LD_PRELOAD 환경변수를 이용해서!)
그 주소를 가져다고 ret에 덮어쓰면 shell이 실행된대요.
한번 해보겠습니다.

gcc -fPIC -shared 옵션을 줘서 shell code가 들어간 이름으로 공유 라이브러리를 생성하고

LD_PRELOAD에 넣어줍니다.

그리고 실행시켜 core파일을 생성 후, 주소를 알아오기 위해 메모리 값을 봅시다.!

저는 0xbffff5f6부터 shellcode가 있더라구요!

바로 실행해보겠습니다.

성공!

'CTF 공부 > LOB' 카테고리의 다른 글

[LOB]darkknight  (0) 2020.01.29
[LOB]golem  (0) 2020.01.27
[LOB]vampire  (0) 2020.01.24
[LOB]troll  (0) 2020.01.24
[LOB]orge  (0) 2020.01.24