나의 기록, 현진록

[War Game] LOB assassin 본문

War Game/LOB

[War Game] LOB assassin

guswlsdk 2018. 3. 1. 21:56
반응형

LOB assassin








fake ebp

SFP 값을 변조하는 문제이다.

48byte까지 제한이 있기 때문에

FEBP 기법을 사용할 수 있다.

ret 값에 leave를 넣는 것이다.


leave는 다음과 같다.

1. mov esp ebp

2. pop ebp

1. esp에 ebp 저장하여

esp, ebp 모두 SFP 값을 가리킨다.

2. pop에 의해 ebp+4

ret은 다음과 같다.

1. mov eip

2. jmp eip

ret에는 leave 주소를 넣어줄 것이기 때문에

다시 leave가 실행된다.

pop에 의해 ebp는 ebp+4가 저장되어 있고

leave의 mov esp ebp로 인해

esp에는 ebp+4가 저장된다.

그리고 ret에 의해 ebp+4로 이동한다.

ebp+4에 buffer 주소를 넣고

buffer에 쉘코드를 넣으면 될 것 같다.



페이로드는 이렇게 구성된다.

[ &system 4 byte ] [ dummy 4byte ] [ & /bin/sh 4 byte ] [ nop 28 byte ] [ buffer 4 byte ] [ leave 4 byte ] 


0xbffffab0부터 버퍼지만 


ret은 ebp+4로 이동하기 때문에


0xbffffaac를 넣으면 +4해서 0xbffffab0를 참조할 것이다.








[ &system 4 byte ] [ dummy 4byte ] [ & /bin/sh 4 byte ] [ nop 28 byte ] [ buffer 4 byte ] [ leave 4 byte ]


0x40058ae0 system


0x400fbff9 /bin/sh


0xbffffaac buffer-4


0x80484df leave







복사파일은 성공했지만 원본파일은 실패.


하루종일 해봤지만 원인을 모르겠다.


그냥 buffer 주소를 4byte씩 바꾸어 보았다.



반응형

'War Game > LOB' 카테고리의 다른 글

[War Game] LOB nightmare  (0) 2018.03.11
[War Game] LOB zombie_assassin  (0) 2018.03.06
[War Game] LOB giant  (0) 2018.02.27
[War Game] LOB bugbear  (0) 2018.02.26
[War Game] LOB darkknight  (0) 2018.02.19