https请求的抓包方法
charles中sslproxy设置(https抓包)

charles中sslproxy设置(https抓包)
以下针对PC抓包进⾏介绍:
PC端设置
1、启动Charles软件,在菜单中找到 Help -> SSL Proxying ->Install Charles Root Certificate.(安装导⼊证书:跟随提⽰完成就可)
2、菜单中找到 proxy -> SSL proxy setting -> 勾选Enable SSL Proxying -> locations ⾥添加⼀个 host 为 * 的通配符即可通配所有域名(否则charles抓包时会存在过滤掉某些请求的情况,host和port填上*,表⽰匹配抓取所有的请求)
注意:只要在PC上进⾏抓取https的请求,就要这样去勾选上并启⽤
⼿机端设置(同fiddler)
1、设置⼿机wifi 的代理 ip 和端⼝号(将⼿机和电脑所处⽹络保持⼀致)--实在不清楚就百度
2、⼿机上设置IP和端⼝,如果不知道可在安装charles的电脑上cmd查看ip地址,然后还需要在charles上设置端⼝;(设置端⼝就如同⼀个验证码,两端保持⼀致才能实现通信)
此时下载的是个.pem 格式的,需要⼿动更改为.crt 格式),在⼿机上:系统设置→更多设置→系统安全→加密与凭据→从存储设备安装
4、根据提⽰下⼀步直⾄安装完成。
mac下的抓包工具Charles(Https抓包教程)

mac下的抓包⼯具Charles(Https抓包教程)转载在mac下⾯,居然没有好的抓包⼯具,这让我⼗分纠结,毕竟不可能为了抓⼀个http包就跑到win下折腾。
或许有⼈说tcpdump这么好的⼯具,你怎么不⽤。
说实话,tcpdump太复杂了,我还没有细看,再加上不是所见所得,所以,⽤起来不是那么习惯⼜有⼈说,wireshark怎么不⽤?好吧,其实我是有装wireshark,只是启动的时候会启动XQuartz,有点慢,当然这不是主要的,⽽是wireshark功能太强⼤了,以⾄于都不会写过滤器。
也有⼈说,图⽅便的话,完全可以⽤chrome⾃带的抓包⼯具啊?在没有找到这个⼯具之前,你可以尝试在地址栏输⼊:chrome://chrome-urls/,你会发现chrome原来有这么多的隐藏⼯具,嗯。
我要说的就是其中的⼀个:chrome://net-internals/ ,在Events中,你可以进⾏过滤,不过,针对https的包,内容没法显⽰越来越怀念windows下⾯,smartsniff完全就是wireshark的简化版,抓起包来刷刷的,过滤数据也很⽅便。
当然,mac下⾯的charles就真⼼不错了,试⽤了⼀下,果然对于https的包也能够抓取。
这⾥有⼀个简单的教程(实际操作略有出⼊):HTTP抓包1. 打开Charles程序2. 查看Mac电脑的IP地址,如192.168.1.73. 打开iOS设置,进⼊当前wifi连接,设置HTTP代理Group,将服务器填为上⼀步中获得的IP,即192.168.1.7,端⼝填88884. iOS设备打开你要抓包的app进⾏⽹络操作5. Charles弹出确认框,点击Allow按钮即可HTTPS抓包1. 下载Charles证书,解压后导⼊到iOS设备中(将crt⽂件作为邮件附件发给⾃⼰,再在iOS设备中点击附件即可安装;也可上传⾄dropbox之类的⽹盘,通过safari下载安装)2. 在Charles的⼯具栏上点击设置按钮,选择Proxy Settings…3. 切换到SSL选项卡,选中Enable SSL Proxying,别急,选完先别关掉,还有下⼀步4. 这⼀步跟Fiddler不同,Fiddler安装证书后就可以抓HTTPS⽹址的包了,Charles则⿇烦⼀些,需要在上⼀步的SSL选项卡的Locations表单填写要抓包的域名和端⼝,点击Add按钮,在弹出的表单中Host填写域名,⽐如填,Port填443接下来就跟HTTP抓包⼀样了---EOF---上⽂中的⼀些操作,其实是有点出⼊的(HTTPS)抓包MAC OS XDownload and unzip the . The bundle contains the Charles CA Certificate file.Run the Keychain Access utility from the Applications/Utilities folder. This tool enables you to manage your certificates.Choose the "login" keychain then go to the File menu and choose Import. Choose the .crt file you downloaded above, and ensure that the login keychain is chosen in the dropdown menu.Complete the import and the Charles CA SSL Certificate will now be trusted for your login account.Move the Charles Proxy SSL Proxying certificate from your login keychain to the System keychain by drag-and-drop if you want all users on the machine to trust it.You will need to quit and reopen Safari to see the change.GOOGLE CHROMEOn Mac OS X, please follow the instructions for Mac OS X above. These instructions only apply on Windows.Open the Options dialog, go to the "Under the Hood" tab, then click the "Manage certificates" button.Go to the Trusted Root Certification Authorities tab and click Import.Find the charles-proxy-ssl-proxying-certificate.crt file. On Windows and Linux it is in the docs directory in your Charles installation directory. On Mac OS X (or if you can’t find it) you can download and unzip .Choose the charles-proxy-ssl-proxying-certificate.crt file, then click Next and Finish, leaving the default options, until you complete theimport. Chrome will now always trust certificates signed by Charles.After importing you can delete the charles-proxy-ssl-proxying-certificate.crt file if you downloaded it.---如果⽤chrome,那就直接可以使⽤/如果firefox,会有插件提⽰你安装/如果是safari,则需要打开证书管理器,将刚才导⼊的证书把login改为system(这样所有⽤户就都能使⽤了,不过都是⾃⼰的电脑,⽆所谓了),safari可能需要重启下浏览器经此,我终于可以抓包了。
iPhone上网络抓包方法详解

iPhone上⽹络抓包⽅法详解
iPhone上⽹络抓包⽅法详解
Mac上常⽤抓包⼯具: Charles, Fiddler, Wireshark
Wi-Fi环境下抓包 (以Charles为例)
1. Mac和iPhone连接相同Wi-Fi
2. 打开Charles,Help->Local IP Address
3. 打开iPhone⽆线局域⽹设置,选中连接的Wi-Fi,配置代理,服务器输⼊步骤2中的ip地址,端⼝号默认8888
4. 设置好之后,就可以在Charles中看到⼿机上的所有请求
Charles还有许多其他的功能,可以抓https请求,设置过滤规则,设置断点,替换本地⽂件,设置⽩名单⿊名单等等移动⽹络下抓包
rvictl命令:xcode的Command Line Tools
步骤
1. ⼿机通过usb线连接到PC
2. 查看⼿机的UDID,因为rvictl需要使⽤它。
Xcode->Window->Device and Simulators
3. 建⽴连接格式:
rvictl -s <UDID>
这样,PC上就多了⼀个虚拟的端⼝rvi0。
可以⽤ -l参数查看有哪些虚拟端⼝:
4. 打开Wireshark, 选择端⼝号进⾏抓包
5. 也可以使⽤tcpdump进⾏抓包
开始抓包并写⼊⽂件
tcpdump -i rvi0 -p -vv -s 0 -w ~/Desktop/2014log.pcap
抓包完成就停⽌抓包
ctrl + Z
6. 最后,好习惯是⽤完关闭
rvictl -x <UDID>。
wireshark抓取https协议

wireshark抓取https协议
作者:张春醒确认wireshark版本:
我使用的wireshark版本是2.4.3,低版本wireshark对https支持有限。
第一种方法(keylogfile法):
1.设置windows环境变量,添加SSLKEYLOGFILE=E:\sslkeylog.log
2.wireshark首选项,ssl协议,最后的log filename选择E:\sslkeylog.log
3.开启wireshark抓包后,使用浏览器访问https网站。
观察到已经有明文http包了。
追踪流->ssl流,可以查看完整http信息
第二种方法(服务器私钥法):
1.把服务器私钥拷贝到windows机器
两种形式:
a)p12格式的文件,例如:test.keystore.p12 + 密码
b)无密码的pem文件,例如:test.clear.pem
生成方法参见《转换keystore证书到PEM格式文件.doc》
2.给wireshark设置服务器私钥
wireshark首选项-> ssl ->RSA Key List
或者
3.打开第一种方法抓取的https包,也同样能看到http数据了。
安卓app抓取https数据流程及解决方案

手机连上fiddler
• 首先打开fiddler软件,设置tools | Fiddler Options | Connections,如果Allow remote computers to connect没有勾选上一定要勾选 上。 • Pc端输入命令ipconfig查看IPv4地址 • 手机端 设置|WLAN|长按当前连接的无线网 比如NCF|修改网络|显示高级选项|代理->手 动,在代理服务器主机名处输入刚查看到 的IPv4地址,然后再代理服务器端口处输入 8888并点击保存Leabharlann 抓取并查看http通信接口数据
• 此时在手机端如有任何的http/https接口通 讯都能在fiddler中看到了,点击任意一条接 口记录,右侧框内点击 Inspectors|WebForms能查看到当前接口所 有字段,展示方式为键值对name为字段名, Value为字段值,下方点击TextView能查看 到接口返回数据。
手机安装fiddler假证书查看https 数据
• 如果手机没添加信任fiddler假证书,查看 https的接口是看不到任何字段的。 • 这时要从fiddler导出假证书,tools|Fiddler Options|HTTPS|点击Export Root Certificate to Desktop。然后把此证书考到手机中。 • 手机端设置方法是:设置|安全|从存储设备 安装选中刚才考进来的证书,此时手机 设备已经信任了此证书。 • 再查看https接口的时候,如果某个app的代 码验证证书的方式为信任所有证书或者只
防止代理安装假证书查看https接 口解决方案
•把服务端证书拷贝一份放置在客户端,调用 接口前首先验证此证书(具体实现见代码), 服务端配置如:<Connector port=“8443” protocol=“org.apache.coyote.http11.Http11Prot ocol” SSLEnabled=“true” maxThreads=“150” scheme=“https” secure=“true” clientAuth="false" sslProtocol="TLS" keystoreType="PKCS12" keystoreFile="C:/apache-tomcat6.0.43/conf/sss_true.p12"
Wireshark抓包分析HTTPS与HTTP报文的差异

Wireshark抓包分析HTTPS与HTTP报⽂的差异⼀、什么是HTTPS:HTTPS(Secure Hypertext Transfer Protocol)安全超⽂本传输协议它是⼀个安全通信通道,它基于HTTP开发,⽤于在客户计算机和服务器之间交换信息。
它使⽤安全套接字层(SSL)进⾏信息交换,简单来说它是HTTP的安全版。
它是由Netscape开发并内置于其浏览器中,⽤于对数据进⾏压缩和解压操作,并返回⽹络上传送回的结果。
HTTPS实际上应⽤了Netscape的安全全套接字层(SSL)作为HTTP应⽤层的⼦层。
(HTTPS使⽤端⼝443,⽽不是象HTTP那样使⽤端⼝80来和TCP/IP进⾏通信。
)SSL使⽤40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。
HTTPS和SSL⽀持使⽤X。
509数字认证,如果需要的话⽤户可以确认发送者是谁。
⼆、HTTPS和HTTP的区别:https协议需要到ca申请证书,⼀般免费证书很少,需要交费。
http是超⽂本传输协议,信息是明⽂传输,https 则是具有安全性的ssl加密传输协议 http和https使⽤的是完全不同的连接⽅式⽤的端⼝也不⼀样:前者是80,后者是443。
http的连接很简单,是⽆状态的 HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议要⽐http协议安全。
三、⽐较操作步骤:***https传输中抓包***1.开启wireshark并配置受监听的⽹卡,点击捕获->选项2.选择正在使⽤的⽹卡,点击开始。
3.电脑中开启浏览器或其他应⽤的时候都会有流量产⽣,有流量产⽣就会被wireshark捕捉到,下图为刚刚开启wireshark后的捕捉状态,会抓到各种各样的流量,稍后我们会进⾏过滤操作。
4.浏览器中输⼊带有https的⽹址,让wireshrk可以抓到包。
5.再次返回到wireshark页⾯,然后在应⽤显⽰过滤器⼀栏中输⼊过滤语句,本例中输⼊ip.dst == 192.168.12.93,即指定wireshark只列出⽬标地址是192.168.12.93的流量。
如何使用wireshark解密https抓包

如何使用Wireshark解密网页https抓包目录1. 配置系统环境变量 (3)1.1. 点击Windows徽标,打开Windows设置 (3)1.2. 点击系统,进入设置 (3)1.3. 点击关于,再选择高级系统设置 (4)1.4. 添加新的系统环境变量 (4)2. 配置Wireshark (5)3. 测试解密https抓包 (6)3.1. 使用WireShark开启抓包 (6)3.2. 使用FireFox浏览器访问https网页 (7)3.3. 在Wireshark查看解密后的https报文 (7)1.配置系统环境变量1.1.点击Windows徽标,打开Windows设置1.2.点击系统,进入设置1.3.点击关于,再选择高级系统设置在系统属性页面,切换到高级标签页,再点击环境变量。
1.4.添加新的系统环境变量1)点击新建。
2)变量名输入SSLKEYLOGFILE,变量值任意新建或者选择一个文件用来存放浏览器输出的日志。
3)逐个点击窗口的确定按钮,直至关闭系统属性设置窗口,保证设置的系统环境变量生效。
2.配置Wireshark1)再编辑菜单下打开wireshark的首选项设置2)先选择Protocol。
3)下拉找到TLS,并在(Pre)-Master-Secret log filename的输入框中输入上一节设置的SSLKEYLOGFILE系统变量的变量值,即设置的日志文件路径。
3.测试解密https抓包3.1.使用WireShark开启抓包点击捕获菜单上的开始捕获按钮或者工具栏上的开始捕获按钮,开启抓包。
3.2.使用FireFox浏览器访问https网页3.3.在Wireshark查看解密后的https报文可以看到https报文已经被解密,可以看到报文内容,软件界面底部出现了Decrypted TLS 标签。
fiddler 抓包原理

fiddler 抓包原理Fiddler抓包原理Fiddler是一种常用的抓包工具,可以用于分析和监测网络流量。
它能够截获HTTP和HTTPS请求,并提供详细的数据分析和调试功能。
本文将介绍Fiddler的抓包原理和工作流程。
一、Fiddler的基本原理Fiddler的抓包原理是通过将计算机配置成代理服务器,拦截和记录网络请求和响应数据。
它截获浏览器和服务器之间的通信,并能够捕获HTTP和HTTPS请求的数据包。
具体的工作流程如下:1. 设置代理:Fiddler在计算机上创建一个代理服务器,将浏览器的HTTP和HTTPS请求转发到真实的服务器。
为了实现这一点,需要将浏览器的代理设置为Fiddler的监听地址和端口。
2. 拦截请求:当浏览器发起HTTP或HTTPS请求时,请求会经过Fiddler代理服务器。
Fiddler会截获请求,并在界面上显示请求的详细信息,包括请求方法、URL、请求头和请求体等内容。
3. 转发请求:Fiddler将截获的请求转发到真实的服务器,并获取服务器的响应数据。
4. 拦截响应:Fiddler会截获服务器的响应数据,并在界面上显示响应的详细信息,包括响应状态码、响应头和响应体等内容。
5. 转发响应:Fiddler将截获的响应数据转发给浏览器,浏览器接收到响应后进行渲染和显示。
二、Fiddler的工作流程Fiddler的工作流程可以分为以下几个步骤:1. 启动Fiddler:运行Fiddler应用程序后,Fiddler会自动配置计算机的代理设置,并开始监听网络流量。
2. 设置代理:将浏览器的代理设置为Fiddler的监听地址和端口。
这样,浏览器发起的所有HTTP和HTTPS请求都会经过Fiddler代理服务器。
3. 发起请求:当浏览器发起HTTP或HTTPS请求时,请求会经过Fiddler代理服务器。
4. 截获请求:Fiddler会截获请求,并在界面上显示请求的详细信息。
用户可以查看请求的URL、请求头和请求体等信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于https协议的接口的抓包方法
一、使用fiddler
1.使用fiddler对浏览器访问的https接口抓包
默认设置下的fiddler是不能解密https协议的请求的内容的,在fiddler上抓到的https 协议的请求都是如下图所示,但是看不到其中的传参以及返回结果的内容:
如果想要用fiddler抓到浏览器访问的https接口,需要在fiddler做如下设置:
a)进入菜单栏,Tools->Fiddler Options:
b)切换到https选项卡,勾选如下选项:
c)按照上面步骤勾选后,会弹出如下提示框,提示意思大概就是fiddler会生成
一个唯一的根证书,我们要配置Windows,使Windows信任这个CA证书,
所以点击Yes即可:
d)点击Yes之后,Windows会马上弹出下面的弹窗,我们点击“是”,就能将
DO_NOT_TRUST_FiddlerRoot这个由fiddler生成的CA证书导入到浏览器,也就
完成了上面C步骤所述的配置Windows,使Windows信任这个CA证书的步
骤:
完成了上面的配置后,即可以在浏览器发起一个https协议的请求:
此时可以在fiddler抓到这个请求,并能看到传参内容和返回的内容
返回的内容:
2.使用fiddler对app访问的https接口抓包
首先要先在fiddler进行设置,步骤与上面的一样,但是不用导入证书到浏览器,这里不再赘述。
Android:
要使用fiddler抓到app发出的https请求,需要在app端安装fiddler生成的CA证书,在Android的app端安装fiddler生成的CA证书步骤如下:
a)设置手机代理服务器,代理到自己的电脑:
b)使用手机内置浏览器访问代理服务器地址:
c)点击这里:
d)此时会弹出安装证书的提示,要先命名证书:
-->
e)点击确定后,系统还会提示要求设置屏幕锁屏密码,以策安全,按照系统提示
一步一步做就行。
完成证书安装后,在app发起https协议的请求,可以看到fiddler能抓到请求,并能看到传参和返回的内容。
需要注意的是,每条https 请求之前都仍然会有Tunnel to :443的请求出现,这个
是https数据传输前的握手过程。
则可进行删除。
iOS:
iOS也可以通过浏览器访问来安装fiddler的证书。
a)首先设置代理服务器,代理到自己的电脑:
b)使用safari访问代理服务器地址:
c)点击”FiddlerRoot certificate”,会弹出如下窗口,此时我们安装这个证书即可:
↓
d)完成证书安装后,在app发起https协议的请求,可以看到fiddler能抓到请求,
并能看到传参和返回的内容。
e)安装证书后,如果要删除,则进入设置->通用->描述文件中,删除描述文件即
可。
-->
二、使用Charles
1.使用charles对浏览器访问的https接口抓包
首先要安装3.10版本以上的Charles。
Charles对https抓包的原理和fiddler是一样的,Charles作为代理,先与客户端之间建立一个https连接,代理获得请求(解密)后,再与目标服务器之间又建立一个https连接,所以用Charles抓包也是需要先在浏览器导入一个证书。
导入证书操作步骤如下:
a)进入菜单栏,Help->SSL Proxying->Install Charles Root Certificate:
b)此时会有如下提示,点击“安装证书”,然后按照证书向导一步一步进行操作,
即可安装成功。
完成了证书的导入:
c)Charles也要做相应的配置,进入Proxy->SSL Proxying Settings:
d)在SSL Proxying Settings中勾选Enable SSL Proxying,并在Locations中输入要抓
取的url的host和端口号:
e)完成以上配置之后,在浏览器发起一个https的请求,可以在Charles看到相
应的抓包解密结果:
2.使用Charles对app访问的https接口抓包
要先在Charles进行设置,步骤与上面的一样,不再赘述。
Android:
以下方法对3.10版本及以上的Charles有效。
要使用Charles抓到app发出的https请求,需要在app端安装Charles的CA证书,在Android的app端安装Charles生成的CA证书步骤如下:
a)设置手机代理服务器,代理到自己的电脑:
b)用手机内置浏览器访问以下url:/getssl,此时会
下载证书并弹出安装提示,要先命名证书:
-->
c)点击确定后,系统还会提示要求设置屏幕锁屏密码,按照系统提示一步一步做
就行。
完成证书安装后,在app发起https协议的请求,可以看到charles能抓
到请求,并能看到传参和返回的内容。
则可进行删除。