写一个HTTP嗅探器
-
20-09-2019 - |
题
我想编写一个程序,通过数据包捕获来提取的通过系统访问的网站的网址(IP地址)。我觉得这个URL会在数据部分(即未在任何头 - 以太网/ IP / TCP-UDP)。(这样的程序有时被称为HTTP嗅探器,我不应该使用任何可用的工具)。作为一个初学者,我刚才通过这个基本的嗅探程序了: sniffex.c 。 。谁能告诉我在哪个方向,我应该继续..
解决方案
注意:在下面的信息,假设GET还包括POST和其他HTTP方法太
。这肯定会比看着一个包了很多的工作,但是如果你捕捉整个流,你应该能够从发出HTTP头得到它。
试着看一下主机头如果是这样的提供,也什么是真正由GET请求。一开始可以是服务器上的一个完整的URL或只是一个文件名。
另外请注意,这已经无关,与从IP地址获得域名。如果您想要的域名,你必须挖掘到的数据。
我的机器上快速例如从Wireshark的:
GET http://www.google.ca HTTP/1.1
Host: www.google.ca
{other headers follow}
又如,而不是从一个浏览器,并与只在GET的路径:
GET /ccnet/XmlStatusReport.aspx HTTP/1.1
Host: example.com
在第二个例子中,实际的URL是 http://example.com/ccnet/XmlStatusReport。 ASPX
其他提示
没有,没有足够的信息。单个IP可对应于任何数量的域名,并且每个这些域可以具有URL的字面上的无限数量。
但是,看看gethostbyaddr(3)来看看如何做对IP反向DNS查找,以至少获得该IP的规范名称。
更新:为你编辑的问题,@aehiilrs有更好answe 河
什么你可能想要的是一个反向DNS查找。调用gethostbyaddr为该。
如果您正在使用Linux,你可以在iptables中添加过滤器添加新的规则,查找包含HTTP GET请求的数据包并获取URL。
所以规则将这个样子。
有关的每个数据包从本地主机会在端口80 - >检查,如果分组包含GET请求 - >检索的URL,并将其保存
这个方法应该适用于所有情况,即使是HTTPS头。
看一看PasTmon。 http://pastmon.sourceforge.net
我是研究对类似的东西和整个这个来了。 希望这会是一个好的开始,如果你使用的是Linux - justniffer
http://justniffer.sourceforge.net/
还有一个不错的http流量抢Python脚本,如果你正在寻找摆脱HTTP请求的信息,这将有助于。