Wargame Site/BOF

|Lord Of Bufferoverflow| #10 vampire - skeleton

믿고걸음 2019. 6. 10. 10:34

 

 

 

진짜 이 문제.... 나를 정말 힘들게 했다.

 

 

gdb 를 돌려보다가 스택 마지막에 경로가 들어가는 것을 알 수 있었고, 이를 토대로 shell code 파일을 심볼릭 링크 파일 이름에 주입하는 형태의 풀이를 여러차례 시도했으나, 항상 이상한 에러가 발생했다. 지금부터 2 주일 동안 저질렀던 삽질을 공개한다. ㅜㅜ

 

 

 

 


 

bash2 를 키고, 분석을 위해 skeleton 을 복사하여 skeletoa 라는 파일을 생성했다. 그 뒤, ln -s 를 통해서 /2F 가 없는 Shellcode 를 가지는 링크 파일을 만들어 주었다.

  

 

그래서 버퍼와 SFP 를 가득 채운 뒤, RET 를 \xbf * 4 로 해주었다.

왜냐하면 경로가 이미 스택에 들어가 있어 사실상 RET 만 바꿔주면 되기 때문이다.

 

 

 

 

 

자, bfbfbfbf 에서 터진 것을 확인할 수 있었다.

 

 

그리고, 스택에서 쉘코드 또한 찾을 수 있었다. '뭐, 그럼 게임 셋 아닌가?'

하.지.만 .....

아무리 RET 를 조절해봐도 0xbfffffd2 에서 멈추는 것이었다.. ㅜㅜ

솔직히, 아직도 왜 안풀리는 건지 모르겠다... 꼭 조언을 얻어서 해결해야할 부분인 듯 하다.

 

 

그야말로...... 멘붕이었다. 여태껏 이론을 충분히 알고 푸는 스타일이기 때문에 이 에러는 나에게 큰 멘붕을 선사했다.

 


 

 

 

구글링을 통해 쉘코드만 다른걸로 바꿔줬을 뿐인데.... 해결되었다.

 

Shellcode 출처 : https://grayfieldbox.tistory.com/entry/LOBLord-Of-BufferOverflow-vampire-skeleton

 

 

그대로 skeleton 에 적용만 해주면 끝!!

 

 

왜 이런걸까... 꼭 나중에 글을 덧붙히도록 하겠다