본문 바로가기

Programming/Python Program

[PYTHON] Python을 이용한 웹사이트 스캐너 만들기 - 1. 소개



파이썬을 이용해 간략한 웹사이트 스캐너를 만드는 과정을 소개하려 한다. 


프로그래밍을 공부하는 분들에게 조금이나마 도움이 되었으면 하는 바람으로 이 글을 작성합니다.

금일 기준(2015년 10월 30일) 정말 개략적인 소개입니다. 여기에 아이디어를 덧붙여 본인에게 맞는 프로그램을 작성해 보시면 유용하리라 생각합니다.

자 그럼 시작해 보겠습니다.


우선. 이글은 파이썬이 어떤것이며, 본인의 컴퓨터에 깔려 있다는 전제하에 진행됩니다. 추후 기초적인 것부터 소개하는 글을 따로 올리겠지만, 현 시점에서는 건너띄고 진행하겠습니다.


또한, 베이스 OS 는 리눅스이면 금상첨화일 것입니다. 저는 맥에서 'Homebrew'를 이용해 리눅스 명령어를 설치해 사용하고 있습니다.

그리고 아래 IDE 툴은 Pycharm 이라고 불리는 파이썬 통합 제작 프로그래밍 툴입니다. 이제 정말 본격적으로 시작하겠습니다. 

1편은 소개 및 기본 개념을 소개하겠습니다.



여러분이 어떤 특정사이트에서 가령, 보안, 분석등을 하기 위한 작업을 하려고 한다면, 어떻게 해야 할까요?

터미널창을 열고 IP Address(아이피주소)를 찾고, nmap scan을 얻고, whois, robots.txt 등을 얻고 정의하고~ 등등 할게 많을것입니다. 물론 한~ 두어개 정도의 사이트만 이렇게 한다면 간략히 터미널 띄워서 할 수 있을것입니다. 그러나 수 많은 사이트를 해야한다고 하면, 프로그램으로 만들어 두는게 시간 절약 + 효율적 일것입니다. 이런 단순노동을 반복적으로 하지 않기 위해 파이썬을 이용한 툴을 미리 만들어 둔다면 상당히 유용할 것이며, 시간도 어마어마 하게 줄일 수 있을 것입니다.


그래서 앞으로 할 일은 URL 을 한번 쳐 넣으면 그와 관련한 모든 정보가 주루룩 뜨게 하려고 하는 것입니다. 단 한번의 클릭으로 말이죠. 이렇게 얻은 정보를 텍스트로 저장할 수도 있을것이며, DB(데이터베이스)에 저장해두고 추후에 다시 재가공을 위해 사용할 수도 있을 것입니다.


자 가볼까요?

1. 위와 같은 많은 정보를 한번에 다룰 main.py 파일을 아래와 같이 만듭니다.

2. 일반적인 사용을 위한 general.py 파일을 만듭니다. 여기서는 나중에 얻을 데이터를 어느 폴더에 저장할지 여부를 결정짓고 파일로 저장하게 하는 펑션(Function)을 만들어 둘 것입니다.


3. os 를 import 해 줍니다. 이 os 모듈은 파일 디렉토리 존재 유무, 파일 만들기 등과 같은 함수가 내장되어 있습니다.

4. 위와 같이 디렉토리 생성 함수를 정의해 줍니다. 기본 문법은 def 로 함수 선언하고 그 이후에 함수명(create_dir) 적고, 이 함수가 가져올 인자(directory)을 정의한 후 : <--로 함수의 선언을 마무리 해 줍니다. 함수의 내용은 아래줄에 적어주면 됩니다. 파이썬에는 C,C++ 과 여타 다른 프로그램과 달리 INDENTATION(들여쓰기)로 줄바꿈이 이루어 진다는 것을 알 수 있으므로 들여쓰기가 중요합니다.

5. if not os.path.exists 는 괄호안의 경로에 디렉토리가 없다면 'True'값을 반환하여 아래 명령을 실행해줍니다.

6. 기존 디렉토리가 없다면 os.makedirs() 를 이용하여 디렉토리를 만들어 줍니다.

7. 이번에는 파일로 만드는 함수를 선언해 줍니다. 인자로는 path, data를 받게 됩니다.

8. open(path,'w') 이것은 경로의 것을 읽기(write)모드로 열라는 의미입니다.

9. f.write(data)  이것은 위에서 열어준 f 를 data값으로 쓰라는 의미입니다.

10. 파일을 열었으니, 닫아줍니다.



이제 기본적인 준비는 마쳤습니다. 


2편에 계속. TO BE CONTINUED .......