(인프런) 무차별 대입 공격 with Python ②

krystal·2022년 1월 13일
0
post-thumbnail

본 내용은 인프런 무차별 대입 공격(bruteforce attack) with Python 강의를 수강하고 쓴 글입니다.
출처 바로 가기


URL, IP, PORT, HTTP

📂 URL(이름) : Windows PowerShell 창을 열고 nslookup www.naver.com 명령어를 입력하면 다음과 같다

[Windows PowerShell]

사진에 나오는 것과 같이 권한없는 응답에서 Address로 나오는 값을 복사하여 URL 입력창에 붙여넣어 검색을 해보면 곧바로 네이버로 이동하게 되는 걸 확인할 수 있다.


📂 IP(주소) : 222.130.200.107 (위 사진 토대로)

📂 PORT(문) : 22,23,...80, 443..(URL 주소중에 : 뒤에 5000같은 숫자가 붙어있는 것)

📂 HTTP :

- GET : 리소스 취득 (URL에 타이핑을 쳐서 엔터치는 방식으로 패킷 생성 가능)
URL 자체에 id와 pw를 타이핑해버리면 노출이 되어버리기 때문에 그 부분을 가려야한다.
대량의 양식이거나 숨기고싶은 데이터가 있을 경우 POST로 보낸다.
- POST : 리소스 생성 (Form에 Method가 POST로 되어야함)
- 200 : 서버가 요청을 제대로 처리
- 404 : 서버가 요청한 페이지를 찾을 수 없음
- 503 : 서버가 오버로드 혹은 다운이 됨



GET 요청 데이터 파싱

바로 지난번 글에 server.py 코드에서 self.wfile.write 코드를 변형한다.

📌 self.path.encod()를 통해 사용자가 입력한 URL을 확인할 수 있다.

localhost:8080을 들어가보면 self.path.encode() 부분은 / 만 나타난 걸 볼 수 있는데
이때, 아무 주소나 하나 긁어서 localhost:8080 뒤에 붙여 검색하면 다음과 같은 결과를 볼 수 있다.

(위 코드 if문을 통해 하나는 물음표와 같이 나오고, 하나는 물음표 없이 나오는 차이점을 확인 할 수 있음)

만약 예를 들어 id와 pw를 입력했다고 치면, 다음과 같다.

여기서 우리가 원하는 값만 파싱하기 위해선 (id,pw값) 또 다시 split 해야한다. split('&')를 통해 id와 pw 각각 값이 분리된 것을 볼 수 있다.

하지만 이렇게 하나하나 코드로 작성하는 것은 많은 노동력이 요구될 수 있기 때문에 라이브러리를 사용하여 작성해준다.

import urllib.parse as parse
👆 파싱해주는 라이브러리
라이브러리를 통해 만든 파싱코드
터미널에 json 형식으로 뽑히는 것을 볼 수 있다.

profile
https://source-coding.tistory.com/

0개의 댓글