SISS/Pwnable.kr
Flag
Flag 아빠가 포장된 선물을 들고 왔다. http://pwnalble.kr/bin/flag를 다운받아야 하는데, 이는 리버싱 문제이고, binary가 필요하다고 한다. # 리버싱 (Reversing = Reverse + Engineering) - 역공학. 이미 완성된 프로그램을 분석하여 제품의 설계 방법, 기법 등을 알아내는 기술. - (해킹/보안) 침해사고를 일으키는 바이러스 및 웜을 비롯한 각종 악성코드와 좀비 프로세스에 관련된 실행코드를 분석하여 소스코드로 변환해 분석하는 작업.(출처 : http://mafa.tistory.com/entry/%EB%A6%AC%EB%B2%84%EC%8B%B1?category=491284) # Binary (이진 파일): 데이터의 저장과 처리를 목적으로 0과 1의 이..
Buffer Overflow
BOF Buffer Overflow에 관한 문제이다. # nc (= Net Cat): network connection에서 raw-data read, write를 할 수 있는 유틸리티 프로그램으로, 네트워크에 읽거나 쓸 수 있다. (cat 명령어가 파일을 쓰거나 읽듯이) 원하는 포트로 원하는 데이터를 주고받을 수 있는 특징 때문에 해킹에도 널리 이용된다. → pwnable.kr 호스트에서 포트 9000으로 연결하여 사용하라는 뜻. 우선 bof 실행파일과 bof.c 파일을 다운받자. ls -al 명령을 통해 bof와 bof.c 파일이 제대로 다운된 것을 확인한 후 bof.c 파일을 열어보았다. 해석을 해보면 다음과 같다. #include #include #include void func(int key) {..
Collision
Collision 우선, MD5와 hash collision(해쉬 충돌)이 무엇인지 알아보자. MD5 : Message-Digest Algorithm 5 - 임의의 길이의 값을 입력받아서 128비트 길이의 해시값을 출력하는 알고리즘. - 패스워드 암호화에서 많이 사용됨. 패스워드를 MD5로 해시해서 나온 값을 저장해두는 것. 운영자나 데이터를 무단으로 뜯어본 자도 이 값만 봐서는 본래의 값 자체를 알 수 없게 된다. - 해커들은 같은 MD5를 갖는 문자열, 즉 "충돌 (Collision)"을 찾아내는 데 주력한다. 해시 함수 : 임의의 길이를 갖는 메시지를 입력 받아 고정된 길이의 해쉬값을 출력하는 함수이다. 암호 알고리즘에는 키가 사용되지만, 해쉬 함수는 키를 사용하지 않으므로 같은 입력에 대해서는 항..
File Descriptor
Pwnable.kr - fd 귀여운 슬라임 모양의 그림을 클릭하면 다음과 같은 화면이 나온다. fd, 즉 file descriptor에 관한 문제이다. file descriptor : 프로세스가 유닉스 시스템 내에 있는 파일들에 접근할 때 사용하는 개념- 시스템으로부터 할당 받은 파일을 대표하는 0이 아닌 정수 값- 프로세스에서 열린 파일의 목록을 관리하는 테이블의 인덱스: 기본적으로는 0 (표준 입력), 1 (표준 출력), 2 (표준 에러)가 프로그램에 할당되며, 따라서 이 외에 해당하는 정수 값을 할당해 준다. 우선 ssh fd@pwnable.kr -p2222로 들어가서 로그인을 한 후에 파일들을 살펴보면 fd와 fd.c가 있는 것을 알 수 있다. fd.c 파일을 열면 다음과 같은 c 파일이 나온다...