맨 아래 부분에서 argv[] 를 모두 초기화 시켜버린다...

 

일단 gdb로 보면서 포인트를 찾아보자.

 

메모리 끝자락으로 가니 실행파일의 절대경로가 저장되어있다.

 

프로그램 코드상에서 argv를 지워도 메모리에는 남는 모양이다.

 

공격벡터로 써먹자.

 

먼저, 파일이름에 쉘코드를 박고 불러와서 쉘을 따는 순서로 하면 될 것 같다.

 

쉘코드에 \x2f가 없어야한다. 

\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81

이 친구를 사용할 것이다.

일단 파일 이름을 바꿔주자.

 

쭈욱 찾아보자.

 

0xbfffff65 가 아까전 파일 경로/이름의 시작 주소인 듯 하다.

 

적당히 NOP 있는 주소를 박자.

 

0xbfffff75 이쯤으로 박아보자.

 

링크를 걸고 익스를 해보자.

 

????

근데 안된다..

삽질 계속 하다가 방법을 못찾아서 롸업 봤는데도 모르겠다.

일단 다음 문제로 가자..

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

LOB - level9 [troll -> vampire]  (0) 2021.07.16
LOB - level8 [orge -> troll]  (0) 2021.05.24
LOB - level7 [darkelf -> orge]  (0) 2021.05.21
LOB - level6 [wolfman -> darkelf]  (0) 2021.05.20
LOB - level5 [orc -> wolfman]  (0) 2021.05.20

+ Recent posts