WarGame/LOB(The Lord of the BOF)

12단계 golem -> darkknight

cyanhe_wh 2019. 9. 20. 18:12
반응형

[그림 1-1] 소스코드

이번 문제는 FPO라고 적혀있다. 이것은 Frame Pointer Overwriting이다.

소스코드를 보면 덮을 수 있는 게 고작 1byte이다. 그러면 쉘 코드를 넣고 마지막 1byte를 쉘코드 -8 위치인 곳의 주소 값으로 바꿔 EBP ESP를 조작해서 실행되게 해 보자.

 

[그림 1-2] 메모리

0xbffffab4 주소 값으로 조작하면 딱 쉘 코드로 점프한다.

[그림 1-3] exploit 실패

메모리 주소를 보고 구한 값으로 exploit을 시도해보았다.

그런데 아무것도 안 뜨고 입력해도 반응이 없다. 실패한 것이다.

그래서 메모리 값이 어떻게 변하는지 일부러 다른 값으로 또 실패시켜 덤프 파일을 얻어 분석해보자.

 

[그림 1-4] core dumped
[그림 1-5] core dumped 메모리

덤프 뜬 것으로 확인해보니 주소 값이 바뀌었다. 이제 0xbffffabc로 하면 성공할 것이다.

[그림 1-6] exploit 성공

성공!

반응형

'WarGame > LOB(The Lord of the BOF)' 카테고리의 다른 글

13단계 darkknight -> bugbear  (0) 2019.11.25
11단계 skeleton -> golem  (0) 2019.09.20
10단계 vampire -> skeleton  (0) 2019.09.08
9단계 troll -> vampire  (0) 2019.09.07
8단계 orge -> troll  (0) 2019.09.07