首页
工具
心境语句
相册
建站轨迹
关于
Search
1
微信小程序:计算属性的两种体现方式及应用场景
1,784 阅读
2
Antd Upload 组件上传文件接收数据流并下载
1,368 阅读
3
unlock-music工具介绍
952 阅读
4
[C#]使用dnSpy对目标程序(EXE或DLL)进行反编译修改并编译运行
886 阅读
5
C#插件火车头采集器动态切换代理IP,及自动切换UserAgent
762 阅读
react
typecho
ASP
Centos
MYSQL
PHP
Sql server
Javascript
nodejs
数据采集
.NET
git
编程算法
管理及流程
Vue
微信小程序
android
python
mongodb
登录
Search
标签搜索
kotlin
node-sass
nuxtjs
C#火车头插件
火车头采集器
火车头代理
C#反编译
程序逆向
dnSpy教程
Antd
InputNumber
NPM教程
NPM命令
rrweb教程
git慢
git镜像
vim命令
git命令
网页音乐插件
网页播放器
Elysian
累计撰写
78
篇文章
累计收到
0
条评论
首页
栏目
react
typecho
ASP
Centos
MYSQL
PHP
Sql server
Javascript
nodejs
数据采集
.NET
git
编程算法
管理及流程
Vue
微信小程序
android
python
mongodb
页面
工具
心境语句
相册
建站轨迹
关于
搜索到
2
篇与
数据采集
的结果
2025-12-02
python windows 微信小程序抓包(转载)
APP、小程序、公众号抓包一、APP抓包(一)BurpSuite抓取手机HTTP数据包1、配置代理IP与端口2、测试(二)BurpSuite抓取手机HTTPS数据包1、安装证书2、测试(三)抓不到包?1、原因2、解决思路3、解决过程二、抓取PC端第三方软件数据包流程演示:1、安装证书2、搭建配置Proxifier3、测试三、BurpSuite抓取微信小程序/公众号数据包流程演示:1、安装证书2、Proxifier搭建3、测试一、APP抓包(一)BurpSuite抓取手机HTTP数据包思路:本地主机作为手机的代理服务器,手机APP发送的数据包会直接发给代理服务器,再由代理服务器进行转发。准备工作:手机与本地主机连上同一wifi1、配置代理IP与端口查看主机IP可以在主机使用win+R调出运行框,输入命令cmd进入命令提示符界面,输入ipconfig查看IP:查看手机IP是否正常配置测试连通性在手机上设置代理:在BurpSuite设置拦截经过本地主机的数据包:打开BurpSuite依次点击:Proxy - Options - Add 添加一个监听IP与端口(端口和IP与手机端添加的代理一致)设置好了后,在“Proxy - Intercept 下开启“Intercept is on”就可以对安卓APP的网络数据进行抓包了2、测试手机端随便打开一个app,就会发现数据已经抓到,可以在HTTP history查看(二)BurpSuite抓取手机HTTPS数据包抓取HTTPS包需要导入Burp的证书。特别注意:一个Burp对应一个证书,就是用哪个Burp抓包就导出哪个的证书,并将该证书在手机上安装。1、安装证书有两种方法导出证书:一是直接在BurpSuite导出证书,二是手机端直接访问代理服务器的IP加端口方法一:依次点击 Proxy - Options 选中代理项,点击importexport CA选择第一个,然后点击Next选择保存CA证书的路径,注意文件后缀命名为.cer,因为手机只能安装.cer的证书类型,默认的der格式是不能被识别安装的。方法二:手机访问代理服务器192.168.1.5:8888,点击CA Certificate 进行证书的下载在手机端下载完证书后,依次点击 设置 - 安全 - 从SD卡安装找到证书下载的位置点击进行安装安装完成后可以在 设置 - 安全 - 信任的凭据 看到。2、测试随便打开一个APP或者用HTTPS协议访问任意网站成功抓取到数据包(三)抓不到包? 参考文档1、原因一般情况下手机在安装了BurpSuite的伪证书后,是可以抓大部分APP数据包的,但APP在安卓7.0或更高的系统下,无法抓取数据包,原因是从安卓7.0开始应用只会信任系统预装的CA证书,而不会信任用户安装的CA证书。这种的情况下,一个解决方法就是使用低于7.0版本的安卓系统进行抓包,另一个就是把使用的伪证书安装到系统证书目录中,伪装成系统证书。下面演示将使用的伪证书安装到系统证书目录中的方法和过程。此方法也适用于抓取微信小程序的数据包。2、解决思路1 使用openssl将der证书转为pem证书,生成pem证书的hash,生成要使用的证书。2 使用adb调试功能,将证书放到系统证书目录中。3、解决过程在安卓7.0或者更高的系统下,如果是只把burp证书装到了用户证书中,APP打开后无法正常使用如下,APP加载不出来在手机端导出证书(方法和前面一样)打开kali终端,依次执行以下命令:将导出的证书转pem证书:penssl x509 -inform der -in burp.der -out burp.pem生成pem证书的hash:openssl x509 -inform PEM -subject_hash_old -in burp.pem重命名/复制证书: (将证书文件重命名为“Hash值.0”,如下)cp burp.pem 9a5ba575.0之后将证书文件导出,然后上传到手机端的 /system/security/cacerts/ 目录下赋权:长按文件点击属性,下滑,点击权限,给证书文件644权限这样就可以正常抓包,正常使用APP内的内容二、抓取PC端第三方软件数据包PC客户端的第三方软件一般不支持代理,除了个别会在软件内设置有代理功能,如百度网盘所以要使用Proxifier工具,用于解决代理问题。关于ProxifierProxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。由于一般的C/S客户端不能设置代理,所以我们FIddler检测不到数据,我们可以通过Proxifer来实现把所有的请求抓发给Fiddler,这样我们就可以在Fiddler分析客户端请求。思路:使用proxifier添加一台代理服务器,这里是本地主机作为代理服务器,数据包会先经过本地主机,然后使用BurpSuite监听或拦截经过主机的数据。流程演示:1、安装证书首先跟前面手机APP抓包一样,导出证书到本地主机,将导出的证书在本地主机进行安装。一路点击下一步到结束,将证书成功安装。2、搭建配置Proxifier①为proxifier添加代理服务器打开proxifier,点击 配置文件 - 配置代理服务器添加代理服务器②打开任务管理器,选择客户端进程,找到所在程序目录复制该程序的路径③配置代理规则点击 选择配置文件 - 配置代理规则将默认规则勾选为Direct,然后点击添加Direct表示数据包直接通过,也可以设置代理,走代理服务器点击浏览,找到复制的路径所在的目录,选择程序最后选择代理拦截④启动代理支持依次点击 高级 - HTTP代理服务器勾选 启用HTTP代理服务器支持 功能重新勾选BurpSuite代理选项,就可以抓包了3、测试随便点击播放音乐成功抓包三、BurpSuite抓取微信小程序/公众号数据包 参考文档:抓取微信小程序/公众号的包需要抓取指定程序的包,可以在PC端登录微信,这样方便些,在PC端操作就要使用Proxifier工具,用于解决代理问题。下面以小程序抓包作为示例流程演示:1、安装证书首先跟前面手机APP抓包一样,导出证书到本地主机,因为这次是微信小程序抓包,可以直接在本地主机登录微信进行抓包。将导出的证书在本地主机进行安装一路点击下一步到结束,将证书成功安装。2、Proxifier搭建①添加代理服务器打开proxifier,点击 配置文件 - 配置代理服务器添加代理服务器②配置代理规则点击 选择配置文件 - 配置代理规则将默认规则勾选为Direct默认规则勾选为Direct是为了不影响除测试程序外的其它程序的正常上网。③打开任务管理器,选择小程序进程,找到所在程序目录复制路径打开Proxifier添加代理规则,将微信的应用添加上,设置走刚刚添加的代理服务器3、测试打开任意一个小程序,成功抓取到数据包本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。python windows 微信小程序抓包https://blog.51cto.com/u_16213619/13989161
2025年12月02日
15 阅读
0 评论
0 点赞
2021-09-08
C#插件火车头采集器动态切换代理IP,及自动切换UserAgent
通过代理供应商接口,实时获取代理IP,每个IP使用1分钟,1分钟后重新获取新IP。整合网上抄来的随机UserAgent,合成了一个火车头插件。using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using SpiderInterface; using System.Net; using System.IO; namespace PluginSample { public class Plugin1 : IHTTPTamper { string[] agentList =new string[] { "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60", "Opera/8.0 (Windows NT 5.1; U; en)", "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0", "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 SE 2.X MetaSr 1.0", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36" }; public void CheckCacheDir() { string Dir = "D:\\IPCACHE\\"; if (!Directory.Exists(Dir)) Directory.CreateDirectory(Dir); } public string GetUrlContent(string url) { using(WebClient wc = new WebClient()){ try { return Encoding.GetEncoding("UTF-8").GetString(wc.DownloadData(string.Format(url))); } catch (Exception e) { throw new Exception(e.ToString()); } } } public string ReadTxt() { string Result = ""; try { string filename = "D:\\IPCACHE\\" + DateTime.Now.ToString("yyyyMMddHHmm") + ".txt"; using (StreamReader sr = new StreamReader(filename)) { Result = sr.ReadToEnd(); } } catch { Result = "缓存不存在"; } return Result; } public string WriteTxt(string val) { try { string filename = "D:\\IPCACHE\\" + DateTime.Now.ToString("yyyyMMddHHmm") + ".txt"; using (StreamWriter sr = new StreamWriter(filename)) { sr.Write(val); } } catch { return "fail"; } return "Success"; } public string GetProxyIp(){ string ProxyApi = "代理IP获取的API, 结果应该是 0.0.0.0.0:xxxx"; CheckCacheDir(); string ip = ""; //检查缓存 string ProxyCache = ReadTxt(); if (ProxyCache != "缓存不存在" && ProxyCache != "") { ip = ProxyCache; } else { ip = GetUrlContent(ProxyApi); WriteTxt(ip); } return ip; } /// <summary> /// 处理下载前的request /// </summary> /// <param name="response"></param> public void BeforeRequest(RequestEntry request) { //Console.WriteLine("BeforeRequest:"+request.Url); //request.Referer=""; //request.Headers. Random r = new Random(); string Agent = agentList[r.Next(agentList.Length)]; request.Headers["User-Agent"] =Agent; var proxy = new WebProxy(GetProxyIp(), true); request.WebProxy=proxy; } /// <summary> /// 处理下载完成后的http响应,网址、默认页、多页、内容分页 /// </summary> /// <param name="response"></param> public void AfterResponse(ResponseEntry response) { Console.WriteLine("AfterResponse:" + response.Url); } } }
2021年09月08日
762 阅读
0 评论
0 点赞