ii4gsp

LOB - Level11 [skeleton -> golem] 본문

시스템 해킹/LOB

LOB - Level11 [skeleton -> golem]

ii4gsp 2020. 1. 19. 01:19

buffer와 buffer+48에서 0xbfffffff까지 모두 0으로 초기화 시킨다.

LD_PRELOAD 환경변수를 이용하여 문제를 풀어야한다.

printf()함수를 호출하면 libc를 참조하는게 아니라 LD_PRELOAD에 정의되어있는 라이브러리 내의 함수를 먼저 참조한다.

그리고 해당 함수가 존재하면 호출한다.

 

 

 

 

#include <stdio.h>

int main()
{
    return 0;
}

빈 파일을 하나 만들어주자

 

 

 

 

쉘 코드 이름으로 컴파일을 해주었다.

 

 

 

 

쉘 코드 이름으로 컴파일 하고, 환경변수 LD_PRELOAD에 파일을 등록해주었다.

 

 

 

 

gdb로 파일을 열고 main()함수가 끝나기전 <main+166>부분에 break point를 걸어주었다.

\xbf 조건을 맞춰주고 공유 라이브러리 영역은 스택 영역보다 낮은 주소에 위치하기 때문에 ebp-3000쯤의 메모리를 살펴보자

 

 

 

 

0xbffff590을 ret로 잡고 페이로드를 작성해주겠다.

i

________

buffer

________

sfp

________

ret

 

(buffer + sfp) + ret

 

 

 

 

payload

./golem $(python -c 'print "\x90" * 44 + "\x90\xf5\xff\xbf"')

'시스템 해킹 > LOB' 카테고리의 다른 글

LOB - Level13 [darkknight -> bugbear]  (0) 2020.01.21
LOB - Level12 [golem -> darkknight]  (0) 2020.01.21
LOB - Level10 [vampire -> skeleton]  (0) 2020.01.18
LOB - Level9 [troll -> vampire]  (0) 2020.01.16
LOB - Level8 [orge -> troll]  (0) 2020.01.16
Comments