Sometimes, you would like to manipulate an application by supplying a custom HTTP header that contains custom information. For example, adding an authorization header can be useful to implement the HTTP basic authentication in your packet capture code.
Let us sniff the packets using the sniff()
function of Scapy
and define a callback function, modify_packet_header()
, which adds an extra header of certain packets.
Listing 9.3 gives the code for adding an extra header in HTTP packets, as follows:
#!/usr/bin/env python # Python Network Programming Cookbook -- Chapter - 9 # This program is optimized for Python 2.7. # It may run on any other version with/without modifications. from scapy.all import * def modify_packet_header(pkt): """ Parse the header and add an extra header""" if pkt.haslayer(TCP) and pkt.getlayer(TCP).dport == 80 and pkt.haslayer(Raw): hdr = pkt[TCP].payload.__dict__ extra_item = {'Extra Header' : '...