CTF 정보보****콘테스트 챌린지북
도서명:CTF 정보보****콘테스트 챌린지북
저자/출판사:우스이,토시노리,타케사코,요시노리,히로타,카즈키,호요/위키북스
쪽수:300쪽
출판일:2016-07-29
ISBN:9791158390433
목차
▣ [00부] 서론
01 _ CTF란?
0.1.1 _ CTF란 무엇일까?
0.1.2 _ CTF에서 출제되는 문제
0.1.3 _ CTF 경기 형식
02 _ CTF 참가
0.2.1 _ CTF를 찾자
0.2.2 _ CTF에 참가하자
0.2.3 _ 대회 종료 후 Writeup을 읽자
03 _ 주의점
04 _ 법률
0.4.1 _ 부정 액세스란?
0.4.2 _ 법률 고려
0.4.3 _ 혹시 취약점을 발견한다면
05 _ CTF를 해보자
▣ [01부] 바이너리 분석
01 _ 1단계: 바이너리 분석이란?
1.1.1 _ 바이너리란 무엇인가?
1.1.2 _ 바이너리 분석에 대한 인식
1.1.3 _ 바이너리를 분석한다는 것의 의의
1.1.4 _ CTF의 바이너리 문제
1.1.5 _ 바이너리 분석과 윤리
1.1.6 _ 이 책의 대상
1.1.7 _ 정리
02 _ 2단계 : 바이너리 분석 환경 구축
1.2.1 _ 분석용 도구 소개
1.2.2 _ 환경 구축
1.2.3 _ 정리
03 _ 3단계: 바이너리 분석 입문
1.3.1 _ 바이너리 분석 절차
1.3.2 _ 표층 분석
1.3.3 _ 동적 분석
1.3.4 _ 정적 분석
1.3.5 _ CTF에서의 바이너리 분석
1.3.6 _ 정리
▣ [02부] PWN
01 _ 1단계: pwn이란?
2.1.1 _ pwn의 유래와 의미
2.1.2 _ pwn 문제의 흐름
2.1.3 _ 도구 소개
2.1.4 _ 실행 환경
02 _ 2단계: 사전 조사
2.2.1 _ 로컬 익스플로잇과 원격 익스플로잇
2.2.2 _ 실행 파일의 보****메커니즘 확인
03 _ 3단계: 취약점 탐색
2.3.1 _ 방침
2.3.2 _ 사용자 입력을 처리하는 함수
2.3.3 _ printf 관련 함수의 포맷 스트링
04 _ 4단계: 익스플로잇
2.4.1 _ 스택 기반 버퍼 오버플로우
2.4.2 _ 포맷 스트링 버그
05 _ 5단계: pwn! pwn! pwn!
2.5.1 _ 익스플로잇 코드
2.5.2 _ ASLR 우회
▣ [03부] 네트워크
01 _ 1단계: CTF에서의 네트워크 분야를 알자
3.1.1 _ 어떤 문제가 출제되는가
3.1.2 _ 네트워크 분야의 문제를 풀기 위해 필요한 것
3.1.3 _ 이번 장에서 다루는 내용
02 _ 2단계: 네트워크 프로토콜
3.2.1 _ 네트워크란?
3.2.2 _ 네트워크 프로토콜
3.2.3 _ 네트워크 계층과 데이터 캡슐화
03 _ 3단계: 패킷 분석
3.3.1 _ 패킷이 기록된 파일
3.3.2 _ 와이어샤크를 이용한 패킷 분석
3.3.3 _ 와이어샤크 - 분석 기능을 이용한 패킷 분석
3.3.4 _ 와이어샤크 - 조건에 맞는 패킷 표시
3.3.5 _ 와이어샤크를 이용해 실제 CTF 문제를 풀어보자
3.3.6 _ 파이썬 프로그래밍 언어를 이용한 패킷 분석
3.3.7 _ 스캐피를 이용한 문제 풀이
3.3.8 _ 그 밖의 다른 도구를 이용한 패킷 분석
04 _ 4단계: 패킷 송수신
3.4.1 _ Netcat을 이용한 송수신
3.4.2 _ 소켓을 이용한 송수신
3.4.3 _ 스캐피를 이용한 패킷 송수신
▣ [04부] 웹 문제
01 _ 1단계: 웹 문제란?
4.1.1 _ 웹 문제의 특징
4.1.2 _ 웹 문제의 개념
02 _ 2단계: 임의 코드 실행 취약점에 대해
4.2.1 _ 임의 코드 실행 취약점이란?
4.2.2 _ 임의 코드를 실행하기 위해
4.2.3 _ 실제 공격
03 _ 3단계: 각종 취약점 이용
4.3.1 _ 돌파구 찾기
4.3.2 _ 운영체제 명령어 인젝션
4.3.3 _ 파일 권한 미비
4.3.4 _ 각 언어별 고유 처리
4.3.5 _ 알려진 취약점 이용
04 _ 4단계: 셸을 탈취한 후
4.4.1 _ FLAG 획득
4.4.2 _ 권한 및 환경 파악
▣ [05부] SQL 인젝션
01 _ 1단계: SQL 인젝션이란?
5.1.1 _ 준법 정신
5.1.2 _ 데이터베이스 조작을 위한 언어, SQL
5.1.3 _ SQL 인젝션으로 할 수 있는 것
02 _ 2단계: 공격 전에
5.2.1 _ SQL 인젝션을 하기 전에
5.2.2 _ SQL 인젝션 가능 여부 확인
5.2.3 _ SQL 구문의 어디에 인젝션이 되는지 추측
5.2.4 _ 동작 환경 확인
03 _ 3단계: 공격해보기
5.3.1 _ SELECT 구문에서 인젝션
04 _ 4단계: 발전
5.4.1 _ INSERT 문 인젝션
▣ [06부] 부록
01 _ 바이너리 분석 팁
부록 1.1 _ 분석 방해 기능을 찾아내고 우회하는 방법
부록 1.2 _ 바이트코드 분석
부록 1.4 _ 바이너리 문제를 풀기 위한 프로그래밍 기법
부록 1.5 _ 정리
02 _ 셸 코드
부록 2.1 _ 셸 코드란?
부록 2.2 _ 셸 코드 기초 지식
부록 2.3 _ 셸 코드를 만들어보자
부록 2.4 _ 셸 코드 압축