System/LOB2019. 4. 26. 18:58

 

▲ LOB 11번 문제. skeleton -> golem 문제이다. golem.c와 golem 파일이 존재한다.

▲ 스택을 buffer+48에서 0xBFFFFFFF 까지 전부 날려버린다.

▲ buffer 안에도, buffer 밖에도, 이름에도 전부 공격 불가능이다.

그럼 도대체 어떻게 풀란 말인가??

▲ 구글님은 말해주었다. 공유 라이브러리와 LD_PREDLOAD를 사용하라고..

▲ 프로그램은 원래 libc.so.6을 불러오게 되는데, 이것을 내가 임의로 만든 파일로 바꿔치기 해 주면 된다.

▲ 따라서 아무 내용 없는 파일을 만든 뒤 공유 라이브러리에 올려둔다. 그리고 LD_PRELOAD에 export하고 스택을 확인해 보면 우리가 만든 쉘 코드가 존재한다.

▲ 공격은 아무 것도 없이 RET[4]에 shellcode 입력 주소만 입력해 주면 된다.

'System > LOB' 카테고리의 다른 글

[LOB] 13. darkknight -> bugbear  (0) 2019.04.26
[LOB] 12. golem -> darkknight  (0) 2019.04.26
[LOB] 10. vampire -> skeleton  (0) 2019.04.26
[LOB] 9. troll -> vampire  (0) 2019.04.26
[LOB] 8. orge -> troll  (0) 2019.04.26
Posted by BadSchool