У меня есть веб-сайт, который доступен по адресу: https://abs:8443/myweb Я использую пакет burp в качестве локального прокси:
proxyIP = "127.0.0.1"
proxyPort = 8080
Затем я попытался проксировать https-трафик через burp на https-сайт, но это не удалось. Вот что я пробовал:
import sys
import socket
import ssl
import os
url = "https://abs:8443/myweb"
proxyIP = "127.0.0.1"
proxyPort = 8080
targetIP = "abs"
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s_sock = context.wrap_socket(sock, server_hostname=targetIP)
s_sock.connect((proxyIP, proxyPort))
data = "some data"
payload = (
"POST "+url+" HTTP/1.1\r\n"
"Host: "+targetIP+":8443\r\n"
"User-Agent: Mozilla/5.0 (X11; Linux i686; rv:52.0) Gecko/20100101 Firefox/52.0\r\n"
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
"Accept-Language: en-US,en;q=0.5\r\n"
"Accept-Encoding: gzip, deflate\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"Content-Length: "+str(len(data))+"\r\n"
"\r\n" + data + "\r\n"
)
sock.sendall(payload)
recv = sock.recv(64000)
sock.close()
print recv
Как проксировать HTTPS-трафик с помощью пакета burp?
Не могли бы вы дать полный ответ?






Вам понадобится обычный прослушиватель, такой как 127.0.0.1:8080. Затем вам нужно будет установить сертификат CA burp, чтобы прослушиватель прокси мог согласовывать соединения SSL.
У PortSwigger есть письменная документация для этого:
Чтобы проксировать HTTPS-трафик, вам сначала нужно отправить запрос CONNECT на прокси-сервер, а затем инициировать SSL-туннель. Вместо того, чтобы иметь дело с этим сырым, вам, вероятно, лучше использовать библиотеку HTTP, например запросы, которые обрабатывают это для вас.