之前饿了么是不需要加密参数,现在需要加密参数,听说的。他的加密参数有三个,之前进行评估的时候,为了快速开发,就是用了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并发,在模拟器下搭建在公网上,并发只能说还行。
以上仅用于学习交流,请勿用于任何非法用途。
关注【小白技术社】里面有很多爬虫-逆向文章等你研究。