如何能让 Python 实时获取到抓包的结果(Charles/fiddler)

2017-05-04 09:28:02 +08:00
 wzw

需求:用 Charles 抓了一个 https 的 post 结果 和 websocket wss 的结果。

内容每 10 秒更新一次,而且用 python 模拟请求有点复杂,所以想用 charles 抓包以后,想办法把结果提出来给 python 程序进行处理。(或者直接把 Chrome 开发者工具中抓到的内容实时保存出来。)

大家有没有这样的保存数据的办法,请分享一下,谢谢!

Charles :

Chrome:

15683 次点击
所在节点    问与答
22 条回复
RFC2109
2017-05-04 09:44:56 +08:00
fiddler 可以写 js 脚本
bearqq
2017-05-04 09:49:06 +08:00
burpsuite 可以写 python 脚本
0xvincebye
2017-05-04 10:01:32 +08:00
mitmproxy
wzw
2017-05-04 10:13:03 +08:00
@RFC2109 这个提醒好,我去看看如何操作。直接 js 写内容到数据库中
fuxkcsdn
2017-05-04 10:20:58 +08:00
@wzw 要在服务器上运行的话,可以尝试阿里的 anyproxy,顺便安利我修改的 anyproxy
https://github.com/consatan/anyproxy
相对于原版增加的功能见
https://github.com/alibaba/anyproxy/pull/137
wzw
2017-05-04 10:22:35 +08:00
@bearqq burpsuite 第一次听说,先学习一下,看应该如何用。
@0xvincebye mitmproxy 我看一下,谢谢你
wzw
2017-05-04 10:22:49 +08:00
@fuxkcsdn 立刻看去。
Trim21
2017-05-04 10:52:02 +08:00
前两天刚遇到这个问题。。。最后是用的 anyproxy。。
wzw
2017-05-04 11:19:03 +08:00
@Trim21 那我先尝试 anyproxy,我现在用虚拟机试试!
hcymk2
2017-05-04 12:48:42 +08:00
scapy
jimmy66
2017-05-04 12:52:29 +08:00
Mark
wzw
2017-05-04 13:35:51 +08:00
@Trim21 @fuxkcsdn anyproxy 搭建好了,有 2 个小问题:
1. web 界面上能看到所有的请求信息,那如何读取这些请求信息给第三方程序进行处理,没有接口去读呀
2. 好像不能抓 websocket
fuxkcsdn
2017-05-04 13:48:39 +08:00
wzw
2017-05-04 13:53:41 +08:00
@fuxkcsdn 自己写一个 rule,然后吧 responseDetail.response 保存到数据库中。 思路对不对。(想着 anyproxy 存了一份数据起来。)
fuxkcsdn
2017-05-04 13:58:08 +08:00
@wzw 对的,在 rule 里用 nodejs (懂点 js 应该都能驾驭) 处理所有数据
也可以把数据 post 到你自定义的 api 里(这样就不限定语言了)

BTW,我目前是在 android 机器里安装 anyproxy,监听到特定 app 的特定请求后,在 nodejs 里清洗数据,json 化后添加到远程 redis 队列,后台处理队列的有 python 也有 php
wzw
2017-05-04 14:07:08 +08:00
@fuxkcsdn 谢谢。我先把所有请求保存成文件就好,先测试。功能能实现,其他都好办。js 不熟悉,还是能懂一点点的。现在开工。。。

anyproxy 的确好,二次开发好。

比 charles 灵活好多了。
wzw
2017-05-04 14:12:16 +08:00
@fuxkcsdn 研究了一下,anyproxy 的确保存了一份文件,单代理关闭的时候自动清理 cache file。

所以我懒得找,用了简单暴力的方法

```
find / -name '*' -type f -mmin -1 | xargs grep "所包含的内容"
```

定位到:
.anyproxy/cache/

东西都在里面

再次感谢你
fuxkcsdn
2017-05-04 14:51:30 +08:00
@wzw 是的,默认就会保存一份 db 的( nedb 格式),我因为想让其运行在 android 手机上,所以特意加了关闭 db 的参数
Trim21
2017-05-04 18:00:13 +08:00
@wzw 我在 python 开了一个 http 服务器,用 rule 请求
wzw
2017-05-04 20:14:57 +08:00
@Trim21 能说具体点吗?谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/358993

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX