V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wzw
V2EX  ›  问与答

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

  •  2
     
  •   wzw · 2017-05-04 09:28:02 +08:00 · 15734 次点击
    这是一个创建于 2794 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    Charles :

    Charles

    Chrome:

    Chrome

    第 1 条附言  ·  2017-05-04 14:13:19 +08:00
    目前我选择了 anyproxy

    进行深入一步的应用

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

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

    anyproxy 的确好,二次开发好。

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

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

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

    定位到:
    .anyproxy/cache/

    东西都在里面

    再次感谢你
    fuxkcsdn
        18
    fuxkcsdn  
       2017-05-04 14:51:30 +08:00
    @wzw 是的,默认就会保存一份 db 的( nedb 格式),我因为想让其运行在 android 手机上,所以特意加了关闭 db 的参数
    Trim21
        19
    Trim21  
       2017-05-04 18:00:13 +08:00
    @wzw 我在 python 开了一个 http 服务器,用 rule 请求
    wzw
        20
    wzw  
    OP
       2017-05-04 20:14:57 +08:00 via Android
    @Trim21 能说具体点吗?谢谢
    Trim21
        21
    Trim21  
       2017-05-04 20:19:22 +08:00
    Trim21
        22
    Trim21  
       2017-05-04 20:20:03 +08:00
    @wzw anyproxy 的中文文档太旧了。。。。里面给的样例代码已经不能用了,还是从英文文档找的。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3211 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:47 · PVG 18:47 · LAX 02:47 · JFK 05:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.