如何能让 Python 实时获取到抓包的结果(Charles/fiddler) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wzw
V2EX    问与答

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

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

    需求:用 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 脚本
    ricemo
        3
    ricemo  
       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     Solana     943 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 19:46 PVG 03:46 LAX 11:46 JFK 14:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86