首页 Files.Gallery破解过程

Files.Gallery破解过程

minc_nice_100 2024.02.01 01:02:51 1 899

前言

有能力还是支持一下作者吧, 毕竟这也是人家一直在维护的东西, 在官网论坛我也看到作者确实是在不停解决各种问题。

关于 files.gallery.

官网: files.gallery
从域名和网站页脚以及源码来看, 它貌似是从 photo.gallery 分离出来的. 很显然这依然还是一个小众的网站, 没听过就对了。

它也只是众多开源网盘中的普通一个罢了, 我看中的是它的轻量和简洁 (仅一个 PHP 文件, 默认采用 CDN 加载需要资源并且支持自托管), 同时缓存也很小,我 700 张缩略图总缓存也才 15M。 虽然在 GitHub 上有这个项目, 但是用户反馈和问题解答基本都是在自己的网站内进行的。

缺点也很明显, 比如不支持多用户和权限控制, 以及付费才能开启文件操作的相关功能。 有点离谱的是不支持递归搜索文件, 后续版本可能会实现吧。

其实这个项目的老版本是有不少破解好的, 网上一搜就能看见了. 但是我之前使用的版本没有上传功能, 但是新版的有, 所以就换上了新版。

可能是因为能直接找到的旧版实在是太老了,我发现的两个都是两年前更新的 0.2.2, 然而官网已经是 0.8.4 的版本了。

掌握验证机制

首先,让我们把它的本体下载回来

Download (jsdelivr.net)

在其配置中,我们可以看到license_key字样,我们便可以以此作为线索找到验证函数

photo[https://ited.top/content/uploadfile/202401/thum-1ea71706717077.png]

现在,让我们去到前端,观察网络情况

photo[https://ited.top/content/uploadfile/202401/96e81706717501.png]

我们可以看到验证服务器的影子,but这是采用域名授权的

photo[https://ited.top/content/uploadfile/202401/17441706717593.png]

返回如下所示

{"status":0,"msg":"not found"}

似乎无解,稳住不慌。这是前端发起的请求,让我们找到其发起程序

photo[https://ited.top/content/uploadfile/202401/3d261706717797.png]

然后,我们把这个文件请回本地。发现没格式化,令人心寒暖心

photo[https://ited.top/content/uploadfile/202401/thum-e4fb1706717911.png]

想一想,如何把url塞进程序里还不留特征,很明显是base64或加密
加密暂时没办法,使用base64逝逝

"https://auth.files.gallery/"=>"aHR0cHM6Ly9hdXRoLnBob3RvLmdhbGxlcnkv"

photo[https://ited.top/content/uploadfile/202401/7dd11706718463.png]

实在是不想也可以直接查找页面参数
photo[https://ited.top/content/uploadfile/202401/4b2f1706718489.png]

于是,鉴权部分就被我们找到了

破解

我们可直接稍作修改来废掉这里,为何奏效细读文档即可发现

How does license verification work?
许可证验证如何工作?
When Files app loads in browser, it will attempt to verify your encrypted license_key remotely via non-blocking Javascript.
当文件应用程序在浏览器中加载时,它将尝试通过非阻塞Javascript远程验证您的加密许可证密钥。
On successful verification, your Files app will be licensed, else it will simply continue in "free" mode.
验证成功后,您的“文件”应用程序将获得许可,否则它将以“免费”模式继续运行
If connection fails for any reason, Files app is considered licensed.
如果由于任何原因导致连接失败,“文件”应用程序将被视为已获得许可。

但是,这样太过粗暴,有悖于优雅精神(当然,细读代码也可以把这里连根去掉)

另辟蹊径

发挥搜索引擎的优势,找到几个已授权的站点,可以发现它们的鉴权结果都是

{"status":1,"msg":"*(保密)"}

接下来自己写个鉴权站点并替换(或直接操作file.js鉴权部分输出),不做赘述

把文件上传到服务器,您会惊喜的发现没有奏效。

我们还少了一步:替换html,把files.js换成自己的

查找

'files.photo.gallery@' . config::$version . '/js/files.js'

去掉ta,并在下边的body标签上加上

<script scr="/files.js"></script>

photo[https://ited.top/content/uploadfile/202401/thum-94c61706719710.png]

把修改后的PHP代码提交到服务器,大功告成。Enjoy it.

------THE END------
发表评论
评论列表:
乌拉草 美国加利福尼亚
2024.03.04 01:19
超快的访问