inflearn logo
강의

Course

Instructor

Bruteforce attack with Python

Parsing POST request data

코드가 이상하게 실행돼요 ㅜㅜ

500

tylergweon5509

1 asked

0

# 서버측 코드 server.py
from http.server import HTTPServer, BaseHTTPRequestHandler
import urllib.parse as parse


class ServerHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('content-type', 'text/html')
        self.end_headers()
        self.wfile.write('<p>hello world</p>'.encode())
        self.wfile.write(self.path.encode())
        self.wfile.write('<br>'.encode())
        if '?' in self.path:
            self.wfile.write(str(self.path.split('?')[1].split('&')).encode())
            print(parse.parse_qsl(self.path.split('?')[1].encode()))
            print(dict(parse.parse_qsl(self.path.split('?')[1].encode())))


    
    def do_POST(self):
        pass



PORT = 8080
server = HTTPServer(('', PORT), ServerHandler)
print(f"서버가 {PORT}으로 서비스 되고 있습니다.")
server.serve_forever()
# 브루트포스 코드
# import itertools
import requests

로그인패킷 = {
    'id': 'hojun',
    'pw': '1234',
}

address = requests.get('https://127.0.0.1:8080/?id=hojun&pw=1234')

# 문자열 = '0123456789'

# for 패스워드길이 in range(1, 5):
#     for password in itertools.product(문자열, repeat=패스워드길이):
#         print(password)
#         print(''.join(password))

여기서 문제가 어딘지 하나도 모르겟습니다 ㅠ

127.0.0.1 - - [05/Jan/2024 17:53:47] "\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03üiQ\x89\x03\x14ðw`ÕéKÔ\x955\\\x0d°\x9e \x1b\x87¦½'°ß´üT¯+ ý:FþYrTJðøþ\x99;Æ®§®Å-\x05M3EEà\x06õ"\x9c½ý_\x00$\x13\x02\x13\x03\x13\x01À,À0À+À/̨̩À$À(À#À'\x00\x9f\x00\x9e\x00k\x00g\x00ÿ\x01\x00\x01\x8f\x00\x0b\x00\x04\x03\x00\x01\x02\x00" 400 -
서버측에선 이렇게 뜨구 400 이라니까 오류인가요?

 

브루트포스 코드에선

(여기 파일 있었음), line 73, in get
    return request("get", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 line 59, in request
    return session.request(method=method, url=url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
, line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  , line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 line 517, in send
    raise SSLError(e, request=request)    
requests.exceptions.SSLError: HTTPSConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /?id=hojun&pw=1234 (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1006)')))

이러는데 어떻게 해야하나요? ㅠ

모의해킹

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

tyler.gweon님, 제시하신 코드와 관련된 실행 오류에 대해 답변드리겠습니다.

에러 메시지를 살펴보면, 브루트포스 코드에서 requests.get을 사용하여 HTTPS 접속을 하려고 했지만, 서버측 코드인 server.pyHTTP 서버로 설정되어있어 발생한 문제로 보입니다.

HTTPSHTTP는 서로 다른 프로토콜이며, 보안 계층인 SSL/TLS에 대한 설정이 추가로 필요한데, 여기서 서버 코드는 HTTP만을 처리하도록 되어있습니다. 따라서 브루트포스 코드에서 서버에 접속할 때 HTTPS 대신 HTTP를 사용해야 합니다.

따라서 브루트포스 코드에서 address 변수에 할당된 URL을 https://127.0.0.1:8080/?id=hojun&pw=1234에서 http://127.0.0.1:8080/?id=hojun&pw=1234로 변경해주세요. httpshttp로 바꾸는 것이 중요합니다.

또한 서버측 코드에서 400 에러는 클라이언트의 요청이 서버에서 처리할 수 없을 때 발생하는 HTTP 응답 코드입니다. 이 경우 SSL/TLS 핸드셰이크 실패 때문에 해당 에러가 발생했을 가능성이 높습니다.

요약하자면, 브루트포스 코드에서 requests.get 함수를 사용할 때, https://가 아닌 http://를 사용하여 서버에 접속해보시길 권장드립니다.

iam 권한

0

15

1

받을 수도 없는 수업 자료들이 올라와 있고, 이것들 때문에 강의를 수료할 수도 없습니다.

0

14

1

침해사고 샘플분석 첫번째 파일 다운로드 불가

0

28

1

인터넷 연결은 되는데 구글 검색은 안돼요.

0

28

1

tomcat 버전정보 문의

0

25

1

네이버클라우드의 장점

0

33

0

강의자료 요청

0

43

1

MsSql php 연결 문의

0

34

1

APMSETUP 대신에 bitnami를 사용해도 되나요?

0

36

1

샘플 패킷 확인 부탁드립니다.

0

52

1

파일이 404에러가 뜨네요..

0

55

1

인증 후에도 동일 메시지가 보이네요

0

71

2

웹 디렉터리의 절대 경로를 모르는 상태에서 웹 쉘 업로드 방법이 존재할까요?

0

81

2

retrun 주소값에 브레이크 포인트 걸고

0

46

1

CRLF Injection 문제

0

85

2

26.01.10 기준 해당 설정은 안해주어도 되나요?

0

65

2

저는 왜 xss 실행이 안될까요?

1

70

2

BHPT 랩 코드가 없습니다.

0

72

2

discord email 인증

0

68

2

BP실행 관련 질문드립니다

0

61

2

CRLF 질문 있습니다

0

69

2

virtual box 인터넷 연결 오류 문제

0

115

1

Dom clobbering 관련 문의

1

95

2

실습

0

297

1