㈠ 用fiddle抓包电脑上和手机上都设置好了为什么还是抓取不到包
1、安装fiddler。
2、配置fiddler 。选择 Tools ->Fiddler Options ->HTTPS->选择Decrypt HTTPS traffic 和 Ignore server certificate errors (unsafe)->Connnections->Fiddler listens on Port: 8888(需填写) 和勾选 Allow remote puters to connnect。
3、在安装fiddler的电脑上安装能开热点的软件。
4、手机连接热点。
5、在手机网络设置里边,这里不介绍android的了,跟ios类似。在iPhone的网络设置里设置 代理,服务器是热点的网址,端口是刚刚设置的8888。
具体一点 不要是没开Gprs 哦 一般2G的手机直接就能上了 不要设置的另外 开Gprs的话 搞个包月的 便宜一点 可以把手机什么反应说一下 我是专家
插上USB接口后在下拉框里选择同步那一项~
应该就连上了~
正常安装,如果在安装过程中,弹出下面的框,去下载相关的文件,名字是javaforosx.dmg,如下图所示:
安装完后打开应用程序,选择Charles,选择显示包内容,如下图所示:
将下载的文件里的Charles.jar 替换掉包内容里的Charles.jar,如下图所示:
查看Mac电脑的IP地址,系统偏好设置->网络就可以查看到了,比如我的ip地址是:192.168.26.4,如下图所示:
打开iOS设置,进入当前wifi连接(Mac在一个局域网内),设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.26.4,端口填8888,如下图所示:
打开Charles,Charles会弹出确认框,点击Allow按钮即可,如下图所示:
接下来,就可以进行抓包操作了,如下图所示:
1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
2. 网络层,也称作互联网层,处理分组在网络中的活动,例如分组的选路。网络层协议包括IP协议(网际协议)、ICMP协议(Inter互联网控制报文协议),以及IGMP协议(Inter组管理协议)。
3. 运输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协 议)。TCP为两台主机提供高可靠性的数据通信。他所作的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最 后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端通信,因此应用层可以忽略所有这些细节。而另一方面,UDP则为应用层提供一种非常简单的服 务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必须的可靠性必须由应用层来提供。
4. 应用层负责处理特定的应用程序细节。包括Tel(远程登录)、FTP(文件传输协议)、SMTP(简单邮件传送协议)以及SNMP(简单网络管理协议)等。
下个豌豆荚就可以了
在哪都改不了别人的
自己的你还是没正确
你可以把要修改的账号及图传上来,帮你修改。
注意发前和发后修改密码。
一、准备工作:
Win7+无线网卡+抓包软件+能Wifi上网的手机
二、配置步骤:
1、在Win7下,以管理员身份启动cmd,输入以下两条命令创建虚拟Wifi,并启动Wifi。其中ssid为WiFi的名字,key为密码。
C:>sh wlan set hostedneork mode=allow ssid=WifiUmer key=testdebug
承载网络模式已设置为允许。
已成功更改承载网络的 SSID。
已成功更改托管网络的用户密钥密码。
C:>sh wlan start hostedneork
已启动承载网络。
创建成功后,控制面板->网络和Inter连接->网络连接中已经创建了无线网络连接2,
2、网络共享
在能上网的网络连接上(如有线的本地连接,无线的无线网络连接)右击,选择属性->共享,给虚拟WiFi启用共享。
3、手机连接到新设的虚拟Wifi上
手机网络设置启用Wifi,将WLAN网络设到刚新增的WifiUmer上,输入刚设定的密码testdebug,点击连接,连接成功。通过cmd命令可以看到WifiUmer的上内网IP地址为:
C:>ipconfig
Windows IP 配置
无线局域网适配器 无线网络连接 2:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::90bc:6340:45b0:b079%19
IPv4 地址 . . . . . . . . . . . . : 192.168.137.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
㈡ targetSdkVersion24抓包问题的完美解决方案
当我们将App的targetSdkVersion升级到API 24以后,在Android 7.0(API 24)以上的手机就会出现无法抓取HTTPS请求的问题,所有的请求都会显示为Unknown。
在targetSdkVersion选择适配24后,API 24的平台默认值被变更了, 在API 24以上的App默认不信任用户证书 ( trust-anchors 里没有了 <certificates src="user" /> 这一行),因此我们使用Charles进行抓包时,安装的Charles证书就不起作用了,App不信任我们的证书,导致无法进行中间人攻击(抓包原理),因此无法抓包。
平台默认配置如下所示:
1.系统证书是系统内置的证书链,用户证书是用户安装的自信任证书。
2.为啥说Root的手机没有安全性保证,因为Root过后的手机什么都能改,包括把网络攻击者的证书安装成为系统证书。
如果单纯地在Manifest里制定的文件中改成API 23以下的默认设置,那么Google为我们带来的安全性变更则不复存在,但当我们复写平台默认配置的情况下,则6.0以下的手机也不能进行抓包!安全性大大提高,平台默认配置的复写配置在AndroidManifest.xml文件中。
AndroidManifest的网络配置如下所示:
如果在这个配置的基本配置项 base-config 里改成API 23以下的默认配置,即相信用户证书的话,那相当于将安全性倒退到6.0之前,但我们可以实现只有在打debug包时才允许抓包,在打release发布包时,不允许抓包。这里就需要用到一个配置 debug-overrides
所以最终的配置文件会长下面这样子,就实现了在 android:debuggable="true" 的情况下(通过Android Studio的直接安装 or 通过Gradle的 assebleDebug )应用可以抓包。通过这个方式我们可以快速提供给服务端同学&测试同学可以抓包的App。
原本我们的app在6.0以下的手机也能被抓包,但当我们复写了以后,6.0以下的手机也不能进行抓包了,但是我们还是可以方便地构造出可以抓包的debug包,安全调试两不误!
cleartextTrafficPermitted 是允许明文通信的意思,这个不要随便设置为 false ,设置为 false 意思是不允许明文通信,当服务端把HTTPS改成HTTP的时候你的App发生请求时就自动退出了,跟闪退差不多。
原文中有这么一句注释,意思是当targetSdkVersion在26以上的话,如果不允许明文通信而WebView使用了明文通信的话,程序也会退出。
㈢ 一步一步教你 https 抓包
在 Mac 上常用的抓包软件是 Charles,网上关于 Charles 的教程很多,这里介绍另一个抓包神器 mitmproxy。mitmproxy 是一款可交互式的命令行抓包工具,它除了可以抓包查看 http/https 请求,还有一个很强大的功能是拦截并修改 request 或者 response,后面我会用实际例子演示如何修改知乎的回答:)
mitmproxy 官网 介绍了用以下命令来安装
我在实际安装过程中遇到了一些坑,首先是 OSX El Capitan 及以上的系统版本在安装时会出现 six 模块依赖错误,具体可以看 这儿 的讨论。还有一个问题是安装过程中会出现权限错误,需要以 root 权限执行。最后用以下命令成功安装,安装不了需要翻一下墙
首先需要配置一下网络环境,将手机和电脑连在同一个 wifi 环境下,然后进入手机的 设置 - 无线局域网,点击当前连接的 wifi 进入详情设置页面,在 http 代理那一栏输入当前连接的 ip 地址,端口填8080,这个 ip 地址可以在电脑上的 系统偏好 - 网络 里查看,配置完成如下图,
网络环境配置完成后我们可以开始实际的抓包了,只需在电脑上打开终端(命令行操作窗口),然后输入 mitmproxy -p 8080 ,如果你看到如下页面说明你已成功进入抓包模式,迈出了第一步,cheer~
接下去你可以用手机打开一些 App,不出意外你能看到一些 http 请求的列表。这时候我们还无法抓到 https 的包,还需要做一些额外配置。
下面的操作是针对 iPhone 手机,其他设备也类似。用 iPhone 打开 Safari 浏览器并输入 mitm.it,这时你会看到如下页面,
选择对应平台并安装证书,安装完成后就可以抓 https 的包了, 官网上 解释了这个工具是如何工作的
好了,到这里我们已经完成了所有的准备工作,接下去就和我一起实际体验一下 https 的抓包过程吧。
这里以知乎为例,用手机打开知乎,我们应该能看到知乎的请求出现在列表里了,类似下图:
键盘上下移动,Enter 键进入查看详情,按 Tab 键切换顶部导航栏,如下图所示,
上面演示的是常规的操作,下面介绍一下 mitmproxy 的另一强大功能,拦截修改 request 和 response。
输入 i ,然后输入 ~s 再按回车键,这时候就进入了 response 拦截模式。如果输入 ~q 则进入 request 的拦截模式,更多的命令可以输入 ? 查看。拦截模式下的页面显示如下图所示,
其中橘红色的表示请求正被拦截,这时 Enter 进入后 再按 e 就可以修改 request 或者 response。修改时是用 vim 进行编辑的,修改完成后按 a 将请求放行,如果要放行所有请求输入 A 即可。
下图是我修改了某个答案的 response 请求将回答者的名字做了修改,因为只修改了 response 并不会影响其他的用户显示:)
上面提到的那些指令在输入 ? 后都能查看到,如下图,另外 官网 上也有很详细的说明
我用上述方式尝试了大多数的 App,包括淘宝、微博,都能抓到 https 的包,有些有加密,有些没有加密。但是做了防中间人攻击的设置,一启用抓包模式就显示网络错误1012,还是做的很不错的,赞一个~
按照上面的过程操作就可以 https 抓包了,如果有遇到问题可以 联系我 ,记得抓完后将手机 wifi 设置里的 http 代理关闭。开始实际体验一下吧,enjoy~