饿了么、抖音 pojie-flask+frida-rpc
資深大佬 : zhaoboy666 0
原贴 https://juejin.im/post/5ed302666fb9a047e25d6410 也是自己的,怕排版乱了 之前饿了么是不需要加密参数,现在需要加密参数,听说的。他的加密参数有三个,之前进行评估的时候,为了快速开发,就是用了 frida 的 rpc 进行了加密参数调用。
饿了么加密参数分别: ex_r
ex_dr
ex_d
(这里的饿了么版本忘记了)
上边图是之前评估的时候做的,年代久远忘记了版本,不过今天的重点不是这个,是用 flask+frida-rcp 搭建的 web 服务。 目前在公司开发的时候用在很多地方,比如:某宝的 xsign 、微视数据抓取(没时间搞,实现一半)、某音的 x-gorgon 、快手的 sig 和 sig3 、某查查、某眼查等等 app 。
对于 flask 的 web 服务简单快捷,加之之前是做 web 的我,就更加熟练。小白上手也很快的,不过不同 app 的对这种方式支持是不同的,有的 app 加壳之后,frida 在 attach 的时候可能出现奔溃,这个都是坑,需要自己想办法了。
饿了么
下面就瞅瞅代码,代码通俗易懂。 对于饿了么传的url_path
传进来就行了。 看看 test.js 代码。 这个由于时间久远,没法测试它运行效果,读者可以自行测试。
抖音
抖音的也不难,瞅瞅代码就 OK 。
@app.route('/test') def hello_world(): args = request.args['url_path'] res = script.exports.callsecretfunctioneleme(args) return jsonify(res) @app.route('/dy') def dy_test(): #浏览器访问不建议用 get,会进行 urlencode,可以自己实现 post 方式测试。 url = 'https://aweme-lq.snssdk.com/aweme/v1/aweme/post/?max_cursor=0&user_id=1028768810424894&count=20&retry_type=no_retry&iid=184358846342967&device_id=2277828257122173&ac=wifi&channel=wandoujia_aweme1&aid=1128&app_name=aweme&version_code=670&version_name=6.7.0&device_platform=android&ssmix=a&device_type=Pixel&device_brand=google&language=zh&os_api=27&os_version=8.1.0&uuid=351615082104688&openudid=3d57b21540251c2e&manifest_version_code=670&resolution=1080*1794&dpi=420&update_version_code=6702&_rticket=1590890088312&app_type=normal&js_sdk_version=1.16.3.5&ts=1590890117&sec_user_id=MS4wLjABAAAA-7QwzV-uUTfGr3sbh6ZjhKMDNJDtH5AXBrX07t7QCkZdHY3xksemJ472P_IH6-lN' # url = request.args['url'] # res = script.exports.callsecretfunctionedy(url) return res
test.js 代码我会放在小白公众号上面,查看历史文章即可。
测试
由于饿了么忘记那个版本了,就不测试了,这里只测试抖音的 rpc 代码。
啰嗦几句
在大概 10 个月前,测试过 frida 的 rpc 并发,在模拟器下搭建在公网上,并发只能说还行。 以上仅用于学习交流,请勿用于任何非法用途。 关注 [小白技术社] 里面有很多爬虫-逆向文章等你研究。
大佬有話說 (5)