这篇是分享一下 bounty program[0] 的初体验 时间轴如下:
2020-09-23 发送 report 给对方 ->
2020-09-23 <- 对方回复收到报告
2020-10-05 发送询问进度、同时发现问题已修复 ->
2020-10-16 <- 回复确认问题、确定奖金
2020-12-21 收到奖金
2020-12-31 对方表示12/31前不能公布细节
故事是这样的 ....
某天 跟朋友聊到 find.synology.com 这个功能、跟背后可能的实作方式
突然想到当年考 OSCP 时候 号称的 try hard 跟那时候认知到的
没有不可能的 bug 只有你想不到的 ...
我就一边 key 著 curl 指令 一边想说堂堂 Synology 应该不会犯这种错误吧 ...
灯愣!
======== 故事结尾分隔线 =========
find.synology.com[1] 是一个帮你找寻网络中的 NAS 的一个网页服务
透过简单的 F12 大法之后发现 主要的做法其实很简单
- 找 http://diskstation.local:5000
- 找 http://rackstation.local:5000
- 找 http://nvr.local:5000
- 找 http://beyondcloud.local:5000
- 找 http://synologynas.local:5000
- 找 http://synologynas.local:5000
- 找 http://synologyuc.local:5000
- 找 http://datastation.local:5000
- 找 http://flashstation.local:5000
- 找 http://synologynvr.local:5000
很明显 上面几个就是透过内网寻找是否有存在的 NAS 取以上其中一种名字
使用的方式是找 .local[2] domain
除了上述之外还发现 他还会呼叫另外两只 API
1. https://global.quickconnect.to/finder/server
2. https://twc.quickconnect.to/finder/get.php
第一个的用法感觉是为了拿到第二个 API 用的 猜测类似 route53 帮你做最佳化(?)
然后第二个 API 则是告诉你 Server 可能的 内网 IP 位址 跟 FQDN[3]
这时我想... 如果喂给他 X-Forwarded-For[4] 会发生什么事情
不过想想 堂堂 Synology 科技版的白板魔王关 应该不会犯这种错误才是
一边手自然地敲下
curl https://twc.quickconnect.to/finder/get.php -H "X-FORWARDED-FOR: IP"
灯愣 似乎发现了不该发现的东西了 :)
想说 该不会是 cache 吧 拿放在日本的 linode 配上台湾的 IP
灯愣 拿到跟直接台湾 IP 查询得到一样的结果
顺口问了 强者我朋友 (有买 DSM) 家里的 IP 也是可以拿到他的内网 IP + FQDN
之后透过了一点关系 拿到了 Synology 公司的对外 IP
拿到的 NAS 资讯 我一个 160*32 的 terminal 页面放不下啊...
当天就剪短写了一篇信过去 (连 PoC 都懒得给了 直接给一个 curl 指令)
接下来就是过了一个冗长的时间之后 拿到奖金 (不过没被放在致谢清单 QQ)
[0]: https://en.wikipedia.org/wiki/Bug_bounty_program
[1]: http://find.synology.com/
[2]: https://en.wikipedia.org/wiki/.local
[3]: https://en.wikipedia.org/wiki/Fully_qualified_domain_name
[4]: https://en.wikipedia.org/wiki/X-Forwarded-For