gpt4 book ai didi

http - Python Scapy - 拦截和修改本地主机上的 http 数据包

转载 作者:可可西里 更新时间:2023-11-01 16:07:33 25 4
gpt4 key购买 nike

我在本地主机上运行了 apache2,我想拦截和修改来自本地主机的 http 请求。通过修改,我想将 header 的 Accept-Encoding 属性更改为“身份”。使用 Burp-Suite,它工作得很好。但是,使用我的 scapy 脚本似乎数据包已经发送,因为 http 响应仍然是编码的。

scapy 脚本:

from scapy.all import *

def intercept(pkt):

if pkt.haslayer(Raw):
http_content = pkt.getlayer(Raw).load

http_content = http_content.replace("Accept-Encoding: gzip, deflate", "Accept-Encoding: identity")
pkt[Raw].load = http_content
print pkt.show()
send(pkt)

def main():
sniff(iface='lo', filter='tcp port 80', prn=intercept)

if __name__ == '__main__':
main()

这是我得到的回复:

<skipped>
###[ Raw ]###
load = 'HTTP/1.1 200 OK\r\nDate: Thu, 11 Aug 2016 09:34:38 GMT\r\nServer: Apache/2.4.23 (Debian)\r\nLast-Modified: Thu, 11 Aug 2016 09:34:25 GMT\r\nETag: "7d-539c878b8f8fd-gzip"\r\nAccept-Ranges: bytes\r\nVary: Accept-Encoding\r\nContent-Encoding: gzip\r\nContent-Length: 103\r\nConnection: close\r\nContent-Type: text/html\r\n\r\n\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xb3\xc9(\xc9\xcd\xb1\xe3\xb2\xc9HML\xb1\xe3RPP\xb0)\xc9,\xc9I\xb5\xf3H\xcd\xc9\xc9W\x08\xcf/\xcaI\xb1\xd1\x87\x08q\xd9\xe8CT\xd9$\xe5\xa7TB\x14g\x18!\xabT\x04\xaa0\x82H\x14@\xc5\x13\xd3\x133\xf3\xf4\xf4\xf4l\xf4\x0b@\x06@t\x02\x95\x81m\x05\x00\x1c\x95F\x1d}\x00\x00\x00'

已编码。

有人可以帮忙吗?

最佳答案

据我所知,scapy 不提供修改系统已经创建的数据包的能力。当然,您可以制作和检查数据包,但不能修改已创建的数据包。正如正确指出的那样here Scapy 在不干扰主机 IP 堆栈的情况下嗅探数据包。但对于 Linux,您可以尝试将 scapynfqueue 模块结合使用。 nfqueue 模块允许您修改(使用 scapy)满足特定 iptables 规则的数据包。

关于http - Python Scapy - 拦截和修改本地主机上的 http 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38893427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com