Подмена запросов в scapy
Нужно изменить запрос в scapy, удалив из него нужную часть
Для примера, строка load в поле Raw пакета scapy содержит:
load = "b'POST / HTTP/1.1\\r\\nHost: yandex.ocsp-responder.com\\r\\nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0\\r\\nAccept: */*\\r\\nAccept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\\r\\nAccept-Encoding: gzip, deflate\\r\\nContent-Type: application/ocsp-request\\r\\nContent-Length: 83\\r\\nConnection: keep-alive\\r\\n\\r\\n0Q0O0M0K0I0\\t\\x06\\x05+\\x0e\\x03\\x02\\x1a\\x05\\x00\\x04\\x14\\xad\\x9e#\\x06}\\xa8rYE\\x83\\x11\\xe4\\x8bPV\\xcdG\\xd2K\\x02\\x04\\x147\\\\\\xe3\\x19\\xe0\\xb2\\x8e\\xa1\\xa8N\\xd2\\xcf\\xab\\xd0\\xdc\\xe3\\x0b\\\\5M\\x02\\x10\\x07\\x99\\xb6\\x83B@\\xd9\\xc4e\\xec\\xe6\\\\\\xcd\\x8e\\xf6i'"
Мне нужно удалить эту часть Accept-Encoding: gzip, deflate\\r\\n С помощью https://pythex.org/ вывел регулярное выражение для выделения этой строки - Accept-Encoding:.*?\\n Для удаления этой части использовал modified_load = re.sub("Accept-Encoding:.*?\\n", "", str(scapy_packet[scapy.Raw].load)) После чего заменял load с помощью функции:
def set_load(packet, load):
packet[scapy.Raw].load = load
del packet[scapy.IP].len
del packet[scapy.IP].chksum
del packet[scapy.TCP].chksum
return packet
И заменял пакет:
new_packet = set_load(scapy_packet, modified_load)
packet.set_payload(bytes(new_packet))