2. 목차
1. 해킹 관련 용어 설명
2. DEFCON CTF
3. DEFCON CTF(BABY-RE) 나의 풀이
4. DEFCON CTF(BABY-RE) 남의 풀이
3. 1. 해킹 관련 용어 설명
• 취약점(Vulnerability)
- 이용하여 권한을 호기득할 수 있는 소프트웨어적인 버그
• 공격코드(Exploit)
- 취약점을 공격할 수 있는 코드
• 개념 증명 코드(PoC Code)
- 취약점을 증명할 수 있는 코드
• 시스템 소유(System Pwned)
- 취약점을 이용하여 해당 시스템을 점유하였을 때 사용하는 표현
4. 1. 해킹 관련 용어 설명
• CVE : Common Vulnerabilities and Exposures
- 취약점에 대한 정보를 모아놓은 List-up
- 취약점 공개(Vulnerability Disclosure)
• Software Bug Hunting
- 소프트웨어 취약점을 특정 이득을 위해 찾아내는 행위(Pwn2Own)
- 소프트웨어 결함, 체계 설계상 허점을 고의적으로 찾아내 금전적 이득,
테러 예방, 해커 명석획득 등의 특정 이득을 노리는 일련의 행위
5. 1. 해킹 관련 용어 설명
• CTF(Capture the Flag)
- 사이버 인프라 구조를 방어하고
- 동시에 상대의 공격을 득점하는 모의 사이버 대회
- “깃발을 잡아라”라는 뜻의 대회명
• CTB(Capture the Bug)
- 취약점을 공격할 수 있는 코드
13. 2. DEFCON CTF
• baby-re는 RE 챌린지 파일이다, 이것은 선형함수에 대한 기본 셋이 들어가
있다. 그 챌린지는 coefficients를 각 함수의 텀에 따라 내보낸다.
• 그 후 너는 수동으로 풀던가 인터넷 사이트에서 풀 수 있다. 그 모르는 함수
는 플래그 바이트이다. 맞는 값을 넣으면 식에 대해서 체크하고 만약 맞으면
플래그를 내보낸다. 선형 시스템의 사이즈는 플래그의 사이즈 이다.
• 플래그를 쉽게 만들기 위해 , 원하는 플래그 스트링을 세팅하고, baby-
re.c를 출력하기위한 create-baby-re 실행할수 있는 것이 있다. 그 후
babe-re.c로 아웃풋한뒤 런 메이크 시킨다.
• 안티 리버싱 바이트 기본이 들어가서 좀 힘들거다.
20. 3. DEFCON CTF(BABY-RE) 나의 풀이
• 시나리오
1. create-baby-re로 내가 넣은 abcd로 소스를 만든다.
2. Baby-re.c가 나온다. 그것을 컴파일해서 실행파일 생성
3. 그 실행파일 가지고 abcd하면 옳다.
4. 그러면 그 구조 소스오디팅&리버싱&분석
23. 3. DEFCON CTF(BABY-RE) 나의 풀이
Var변수가 변하는 지점 찾기
Var 변수가 변하지 않고 if문으로
linear system(방정식) 연산에
이용됨
24. 3. DEFCON CTF(BABY-RE) 나의 풀이
• 시나리오
1. create-baby-re로 내가 넣은 abcd로 소스를 만든다.
2. Baby-re.c가 나온다. 그것을 컴파일해서 실행파일 생성
3. 그 실행파일 가지고 abcd하면 옳다.
4. 그러면 그 구조 소스오디팅&리버싱&분석
5. C배열의 if문 체크루틴 바로 전의 값을 확인
6. 방정식을 풀어서 var[0]~var[3]을 구한다.
7. 그리고 푼다!
25. 3. DEFCON CTF(BABY-RE) 나의 풀이
If문에서 곱 연산을 처음 실행하기
때문에 그것만 따라가면서 찾아냄
$rbp-0x40에 c[0]값이 있다.
$rbp-0x48에 내가입력한
var[0]값이 있다.
26. 3. DEFCON CTF(BABY-RE) 나의 풀이
$rbp-0x40에 c[0]값이 있다.
C[0] = 6731 ~~
C[0]~c[15]까지 총 16개
이제 인자, 값 나왔으니 미지수만
구하면 됨.