Fiddler抓包原理
1,Fiddler抓包原理
Fiddler为什么可以抓包,Fiddler本质上是一个web代理服务器,默认的工作端口是8888
查看端口方式TOOLS->options->connections 如图所示
2,什么是代理服务器
Web 代理(Proxy Server)服务器是网络的中间实体。代理位于 Web 客户端和 Web 服务器之间,扮演“中间人”的角色。HTTP的代理服务器既是Web服务器又是Web客户端
3,代理服务器是网络信息的中转站,它具有以下功能
(1)共享网络。能解决仅仅有一条线路、一个公有 IP的问题。在公有 IP资源严重不
足的情况下,可以满足局域网大量用户同时共享上网的需求。
(2)提高了访问速度。因为大部分的代理服务器都有缓冲功能,可以直接读取,无须再连接到远程 Web 服务器。这样可以达到加快访问网站的速度、节约通信带宽的目的。
(3)突破了访问限制。当访问权限受到限制时,可以使用有权限的代理服务器。
(4)隐藏身份。内部网的用户要对外发布信息,就需要使用代理服务器的反向代理功
能。这样就不会影响内部网络的安全性能,起到隐藏身份的目的。
4,Fiddler工作原理
Fiddler 是以代理 Web 服务器的形式工作的,它使用代理地址: 127001,端口:8888
Fiddler启动的时候,会偷偷地把 Intemet选项中的代理修改为127001,端口:8888
当Fiddler 退出的时候,它会自动在 Intemet选项中取消代理,这样就不会影响别的程序。
如果Fiddler 非正常退出,这时候因为 Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动 Fiddler。
5,查看Internet 选项代理设置
1,先启动 Fiddler,打开控制面板,找到Internet属性,然后选择连接->局域网设置高级,可以看到代理服务器地址已经被Fiddler 设置为127001:8888 了。
2,关闭Fiddler,可以看到代理服务器地址已经取消了。
6,Fiddler可以捕获那些设备的HTTP数据包
任何支持代理的HTTP 请求都能被 Fiddler 捕获到,首先 Fiddler 能捕获各种浏览器,比如IE、Firefox、Chrome 发出来的数据包。
Fiddler 还能捕获各种移动设备,比如 Android 手机、苹果手机、iPad 等发出的数据包。
Fiddler能捕获任何程序发出来的HTTP/HTTPS请求,只要这个程序支持Web代理服务器即可。
比如Fiddler能抓到QQ发出的包,当然QQ中发的聊天消息是抓不到的,因为QQ中的聊天信息使用的是OICQ协议,不是HTTP协议。
fiddler实际上是通过代理的方式来工作的。默认端口是8888,所以用来请求http的客户端,需要设定代理,就能被截获并记录。这种方式必须依赖fiddler进程正常工作。
以下是java设置代理的一种方式。具体要看使用什么客户端程序了。不同的客户端程序设置代理的方式肯定不一样。
Proxy proxy = new Proxy(javanetProxyTypeHTTP,new InetSocketAddress("127001", 8888));URL serverUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) serverUrlopenConnection(proxy);
样例:
package comhttp;
import javaioBufferedReader;
import javaioInputStreamReader;
import javanetHttpURLConnection;
import javanetInetSocketAddress;
import javanetProxy;
import javanetURL;
public class Http302Redirect {
public static void main(String[] args) {
try {
String url = "http://weibocom/1253711052";
Systemoutprintln("访问地址:" + url);
Proxy proxy = new Proxy(javanetProxyTypeHTTP,
new InetSocketAddress("127001", 8888));
URL serverUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) serverUrl
openConnection(proxy);
connsetRequestMethod("GET");
connaddRequestProperty("Accept-Charset", "UTF-8;");
connaddRequestProperty("User-Agent",
"Mozilla/50 (Windows; U; Windows NT 51; zh-CN; rv:1928) Firefox/368");
connaddRequestProperty("Referer", "http://weibocom");
connconnect();
BufferedReader reader = new BufferedReader(new InputStreamReader(
conngetInputStream()));
StringBuffer buffer = new StringBuffer();
String line = readerreadLine();
while (line != null) {
bufferappend(line)append("\r\n");
line = readerreadLine();
}
readerclose();
conndisconnect();
Systemoutprintln(buffer);
} catch (Exception e) {
eprintStackTrace();
}
}
}
0条评论