감자 텃밭

orc 본문

my_study/LOB

orc

g2h 2021. 5. 19. 02:03

해당 계정으로 접속 후 ls -l로 파일 및 디렉터리를 확인 후 wolfman.c파일을 확인하여 소스코드를 확인

wolfman.c

음.. 이전문제와 동일하게 인자 값은 하나 이상 48번째에 \xbf가 있어야 하며 strcpy를 사용한다

하지만 이문제에서는 buffer hunter 즉 memset를 사용하여 버퍼의 값을 초기화한다.

즉 버퍼에 쉘 코드를 삽입하여도 초기화가 된다는 것이다... 흠

그렇다면 버퍼에 값이 사라져도 argv [1]의 값은 존재하니 argv[1]의 값을 쓰거나 ret뒤에 값을 써도 된다.

나는  ret뒤쪽에 있는 값을 쓰기로 했다.

 

즉 buffer [40]+sfp [4]+set [4]+[shell code]로 payload를 작성하면 된다.

각종 권한 문제로 인해 /tmp에서 작업을 했다.

주소확인을 위한 과정

ret 뒤쪽의 shellcode의 주소를 알아내기 위해 cp를 통해 해당 파일을 /tmp로 옮긴 후 

해당 코드로 프로그램을 실행하여 core dump를 확인하여 주소를 알아낼 것이다.

아래를 보면 주소를 알아낼 수 있다. 버퍼에 저 된 값에 대한 주소도 있지만 버퍼 헌터를 만나면 사라지고 

ret주소도 알 수 있다. 나는 ret뒤쪽의 값인 0 xffffc50을 사용하면 된다.

 

그럼 이제 payload를 작성해보자

성공!1

성공적으로 쉘을 획득하고 패스워드를 알아낼 수 있었다!!!

'my_study > LOB' 카테고리의 다른 글

darkelf  (0) 2021.05.20
wolfman  (0) 2021.05.20
goblin  (0) 2021.05.18
cobolt  (0) 2021.05.18
Gremlin 문제  (1) 2021.05.17