LOB 두번째는 cobolt를 무찌르는 겁니다.

우선 cobolt.c의 코드를 확인해 보도록 하겠습니다.

strcpy라는 취약한 함수를 이용해서 BOF 를 하면 되구요. Buffer 의 크기는 16byte밖에 되지 않네요.

gremlin때는 buffer에 직접 쉘코드를 넣을 수 있을 만큼 크기가 충분했으나 이번에는 크기가 작으니 쉘코드를 환경변수에 등록하고 ret를 환경변수의 쉘코드 주소로 변경해 주어야 할것 같습니다.

 

우선 gdb로 확인해 보도록 하겠습니다.

ebp-16에 값을 입력하네요. SFP까지 포함해서 20byte만 넣어주면 될듯 합니다.

 

그럼 환경변수에 쉘코드를 등록하고 주소를 가져오도록 하겠습니다.

쉘코드가 들어있는 환경변수의 주소는 0xbffffe2f네요.

20byte를 입력하고 주소값을 넣어 ret를 덮도록 하겠습니다.

정상적으로 cobolt의 쉘이 획득되었습니다.

 

cobolt의 비밀번호는 hacking exposed이네요.

+ Recent posts