【发布时间】:2020-09-04 18:26:57
【问题描述】:
对于我正在制作的脚本,我需要能够查看随请求发送的参数。 这可以通过 Fiddler 实现,但我正在尝试自动化该过程。
Here 是一些截图。正如您在 Fiddler 的第一张图片中看到的那样,我可以看到请求的 URL 以及随该请求发送的参数。
我尝试使用下面的代码使用 scapy 进行一些数据包嗅探,看看是否可以获得类似的结果,但我得到的是第二张图片。基本上,我可以将数据包的源和目标作为 ip 地址来获取,但数据包本身只是字节。
def sniffer():
t = AsyncSniffer(prn = lambda x: x.summary(), count = 10)
t.start()
time.sleep(8)
results = t.results
print(len(results))
print(results)
print(results[0])
据我了解,在我们建立 TCP 连接后,请求被分解成几个 IP 数据包,然后发送到目的地。我希望能够复制 Fiddler 的功能,在那里我可以看到请求的 url,然后是发送过来的参数值。
仅通过从数据包中收集的信息重新创建请求的信息是否可行?
或者这个区别是因为嗅探是在第 2 层完成的,然后可能 Fiddler 在完成转换为 IP 数据包之前/之后在第 3/4 层操作,所以它实际上看到了原始请求本身的内容和数据包组合的结果?如果我的理解有误,请指正。
基本上,我的问题归结为:“是否有一个 python 模块可以用来复制 Fiddler 的功能来识别请求的目标 url 以及与该请求一起发送的参数?”
【问题讨论】: