이번 포스트에서는 Python Challenge의 Level 5 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 사진 한 장과 "발음해봐라"는 문구가 나와 있다. 소스코드를 확인해보니 다음과 같다. "peak hell의 발음이 친숙하다?"라는 문구가 나와 있으며, banner.p라는 파일이 있다. ".p"라는 확장자를 통해 해당 파일은 파이썬의 피클파일인 것을 알 수 있다. ## 문제 풀이 : 먼저 해당 피클 파일을 실행해보겠다. ### 공격 코드 : import pickle from urllib.request import urlopen data = pickle.load(urlopen("http://www.pythonchallenge.com/pc/def/bann..
이번 포스트에서는 Python Challenge의 Level 4 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 사진이 한 장 달려 있다. 사진을 클릭하면 다음과 같은 화면이 나온다. 여기서 nothing은 URL의 파라미터인 nothing임을 짐작할 수 있다. 그럼 해당 파라미터를 계속 바꿈으로써 문제를 풀 수 있는 것으로 보인다. ## 문제 풀이 : 파라미터가 여러 번 변경되므로 파이썬을 통해 자동화 코드를 작성해보았다. ### 공격 코드 : from urllib import response import requests url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?" nothing = 12345 ..
해당 포스트는 정보보안기사 필기시험을 대비하기 위해 작성한 필기본이다. ## ISO/IEC 27000시리즈 ISO/IEC 27000 (Overview & Vocabulary) : 정보 보안 관리 시스템에 대한 개관 및 27000 계열 표준에서 사용된 어휘들을 정의하고 있다. ISO/IEC 27001 (ISMS requirements standard) : 정보 보안 관리 체계에 대한 문서의 수립, 이행, 운영, 모니터링, 검토, 유지보수, 개선을 위한 요구 사항들을 명시하고 있다. ISO/IEC 27002 (code of practice for ISMS) : 조직에서의 정보 보안 관리를 위한 지침이 나와 있으며, 정보 통제를 위한 최선 실무에 대한 목록도 포함하고 있다. ISO/IEC 27003 (ISMS..
이번 포스트에서는 Python Challenge의 Level 3 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : "양쪽에 정확히 세 명의 큰 보디가드에 둘러싸인 작은 글자 하나"라는 문구가 적혀 있다. 여기서 작은 글자는 알파벳 소문자, 큰 보디가드는 알파벳 대문자를 뜻한다. ## 문제 풀이 : 페이지의 소스를 확인해보니 아래와 같이 주석 처리된 긴 문장이 있다. 대충 훑어보니 영어 알파벳으로 이루어진 것을 알 수 있다. 아마 해당 주석문에서 다음 문제의 키가 존재하는 것 같다. 그럼 우리는 힌트를 통해 3개의 대문자 사이에 존재하는 1개의 소문자가 뭐뭐 있는지를 알아내면 된다. 여기서는 파이썬의 정규식을 활용하여 쉽게 구할 수 있다. ### 공격 코드 : im..
해당 포스트는 정보보안기사 필기시험을 대비하기 위해 작성한 필기본이다. ## Active 모드와 Passive 모드 ### Active 모드 서버가 21, 20번 포트 사용. 서버에서는 두 개의 포트만 열면 서비스 가능. 두 번째 connection은 서버에서 클라이언트로 접속. 클라이언트에 방화벽 설치시 접속 불가. ### Passive 모드 서버가 21, 1024 이후 포트 사용. 데이터 전송 위해 1024번 이후 포트 사용. 서버에서 클라이언트로 접속해야 하는 모순 해결 위해 고안된 방식. 서버에서는 21번 포트와 1024번 이후의 모든 포트 오픈. 보안 위해 서버에서 passive모드로 사용할 포트 제한. *** PEM, PGP, S/MIME 비교 항목 PEM PGP S/MIME 개발자 IETF ..
이번 포스트에서는 Python Challenge의 Level 2 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : "문자를 식별하라" 라는 문구가 적혀 있고 페이지의 소스 코드 안에 있다는 말도 함께 적혀 있다. 즉 페이지의 소스 코드 내에 답안이 있는 것으로 보인다. ## 문제 풀이 : 마우스 우클릭하여 페이지의 소스 코드를 확인해보겠다. 엄청 긴 소스 코드가 출력된 것을 확인할 수 있다. 여기서 초록색 위주로 보면 되는데, 기호들 사이에 간혹 아래 그림 처럼 알파벳이 들어가 있는 것을 확인할 수 있다. 그럼 파이썬을 활용하여 페이지 소스를 받은 다음에, 기호가 아닌 알파벳만 출력하게끔 하면 될 것 같다. ### 공격 코드 : import requests url..
이번 포스트에서는 Python Challenge의 Level 1 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : 알아볼 수 없는 이상한 보라색 문구가 적혀 있다. 그리고 사진 속 K->M, O->Q, E->G가 적혀 있는 것을 확인할 수 있다. 해당 힌트에 대해서 생각해보면 K는 아스키 코드로 75이며 M은 77, O는 79이며 Q는 81, E는 69이며 G는 71이다. 즉 아스키 코드상 +2가 된 것을 알 수 있다. ## 문제 풀이 : 아래와 같이 아스키 코드를 바꿔주는 파이썬 코드를 짜보았다. ### 공격 코드 : cipher_t = input("Input the Cipher : ") plain_t = "" for i in range(len(cipher_t..
이번 포스트에서는 Python Challenge의 Level 0 문제에 대해 다루겠다. 문제를 클릭하면 다음과 같은 페이지가 출력된다. ## 문제 해석 : URL 주소를 바꾸라는 문구가 있다. 아마 URL 주소를 맞게 변경하면 다음 레벨로 진입할 수 있는 것으로 보인다. ## 문제 풀이 : URL 주소를 확인해보면 다음과 같다. 0.html로 끝내는 것을 확인할 수 있다. 여기서 간단하게 0을 1로 바꿔보겠다. ### 사용할 공격문 : http://www.pythonchallenge.com/pc/def/1.html ### 실행 결과 : 2**38 is much much larger라는 문구가 출력된 것을 확인할 수 있다. 여기서 잠깐 Level 0의 문제를 확인해보면 컴퓨터 위에 2^38이 적혀있는 포스..
해당 포스트는 정보보안기사 필기시험을 대비하기 위해 작성한 필기본이다. ## 프로토콜의 주요 요소 구문(Syntax) : 데이터의 형식, 부호화, 신호 레벨 등을 가리키는 것으로 데이터가 어떠한 구조와 순서로 표현되는지를 나타냄. 의미(Semantics) : 각 비트가 갖는 의미를 나타내는 것으로 해당 패턴에 대한 해석과 해석에 따른 전송제어, 오류수정 등에 관한 제어정보를 규정하는 영역. 타이밍(Timing) : 두 개체간의 통신속도를 조정하거나 메시지의 전송시간 및 순서 등에 대한 특성을 가리킴. *** OSI 7 Layer의 구조 계층 특징 데이터 종류 예 7 응용 (Application) - 각종 응용서비스 제공 - 네트워크 관리 메시지 (Message) FTP, TFTP, SNMP, SMTP, ..
이번 포스트에서는 웹 해킹 기법 중 DNS를 활용한 파밍(Pharming) 공격에 대해 다루겠다. DNS 파밍 공격은 DNS 주소를 변조하여 사용자(피해자)로 하여끔 가짜 사이트로 접속하게 만드는 사회공학 기법이다. 즉 정상적인 도메인 사이트를 입력하고 접속을 시도했음에도 해커(공격자)가 만든 피싱 사이트로 접속하게 만드는 해킹 기법이다. 자세한 DNS 파밍 공격을 다루기 앞서 먼저 DNS에 대해서 다루어보겠다. ## DNS : DNS는 Domain Name System의 약자로 도메인 이름을 관리하는 시스템이다. 평상시에 우리가 자주 활용했던 사이트들은 고유의 IP주소를 가지고 있다. 예를 들면 네이버는 223.130.200.107, 구글은 142.250.199.78이다. 이러한 IP 주소는 일종의 식..