Skip to content
hugeJan
Go back

GPT帮我绕过了网站的下载登录限制,而DeepSeek 失败了

Edit page

今天遇到了一件挺有意思的事。

我在 LINUX DO 上看到一个帖子,里面有个我想下载的 txt 附件:

se图生成提示词大全.txt

点进去之后发现,附件下载需要登录。

正常情况下,到这里无非两个选择:登录,或者算了。

但我突然想试试看,AI 能不能自己把这个文件找出来。

于是我分别把这个问题交给了 GPT5.6 sol high 和 DeepSeek v4 flash max。

结果有点出乎意料:

DeepSeek v4 flash max 没找到。GPT5.6 sol high 找到了。

而且它不是通过什么“黑进后台”的方式,而是沿着网站本身公开暴露的信息,一层一层把真正的附件地址推了出来。

第一层:网站给出的其实是一个 short-url

原帖里的附件链接类似这样:

https://linux.do/uploads/short-url/j52KTqKW9UUwXS7jiq0iktYUrVS.txt

一开始我以为后面那一长串:

j52KTqKW9UUwXS7jiq0iktYUrVS

就是一个普通随机 ID。

但 GPT5.6 sol high 注意到了一个关键点:

LINUX DO 使用的是 Discourse。

而 /uploads/short-url/ 正好是 Discourse 的附件短链接机制。

这意味着这串字符很可能不是随机生成的。

第二层:short-url 里面其实藏着 SHA-1

GPT5.6 sol high 接着去看了 Discourse 对上传文件的处理机制。

结果发现,Discourse 会给上传文件计算 SHA-1,然后把这个 SHA-1 对应的整数用 Base62 压缩,生成一个更短的 URL。

也就是说:

SHA-1
↓
Base62 编码
↓
short-url

反过来当然也成立:

short-url
↓
Base62 解码
↓
SHA-1

于是那串:

j52KTqKW9UUwXS7jiq0iktYUrVS

被还原为了一个标准的 40 位 SHA-1。

到这里,我就已经觉得挺有意思了。

因为这意味着所谓的 short-url,本质上只是把文件哈希换了一种更短的表达形式。

第三层:知道 SHA-1 还不够

但事情还没结束。

有 SHA-1 并不代表就知道文件放在哪里。

接下来还需要知道 LINUX DO 的附件实际存储路径是什么。

这一步 GPT5.6 sol high 并没有傻乎乎地去猜:

1X?
2X?
3X?
4X?

然后一个一个试。

而是去观察 LINUX DO 自己公开页面里已经存在的附件地址。

很快就发现了大量类似这样的结构:

cdn3.ldstatic.com/original/4X/...

于是可以确定:

LINUX DO 当前使用的是 Discourse 的 4X 附件目录结构。

这里有一个很漂亮的规则。

假设 SHA-1 是:

abcdef123456...

那么 4X 结构会把 SHA-1 的前三位拆开:

a / b / c

然后形成类似:

/original/4X/a/b/c/abcdef123456...

也就是说:

SHA-1 前三位拿来分目录,后面再放完整 SHA-1。

LINUX DO 自己公开的附件地址里,可以看到大量这种结构。

第四层:把几块拼起来

到这里,所有信息其实都齐了:

原帖公开的 short-url
        ↓
识别出 Discourse
        ↓
Base62 解码
        ↓
得到 SHA-1
        ↓
观察 LINUX DO 的公开附件地址
        ↓
确认使用 /original/4X/
        ↓
SHA-1 前三位作为三级目录
        ↓
拼出真实 CDN 地址

最终,GPT5.6 sol high 给出了这个附件实际位于 cdn3.ldstatic.com 上的地址。

我复制到浏览器里。

直接下载成功。

整个过程中没有登录 LINUX DO。

所以,这算“黑进后台”了吗?

不算。

实际上整个过程中都没有发生这些事情:

它做的事情更接近:

从网站公开暴露的信息中识别系统实现,再根据公开规则推导资源的真实地址。

网站的下载入口要求登录,不代表底层 CDN 本身一定实施了同样的访问控制。

在这个案例里,真正的文件地址仍然可以被直接访问。

所以严格来说,与其说是“破解登录”,不如说是:

绕开了要求登录的下载入口。

那为什么我还是觉得这件事挺惊艳?

因为真正让我感兴趣的并不是“下载到了一个 txt”。

那个文件本身一点都不重要。

真正有意思的是 GPT5.6 sol high 完成这件事时体现出来的一整条推理链:

识别网站框架
→ 识别 URL 机制
→ 查实现规律
→ 进行编码还原
→ 观察真实网站样本
→ 推断目录规则
→ 构造目标地址
→ 实际验证

这已经不是简单的:

“我知道一个知识点,所以我回答你。”

而更像:

“我现在不知道答案,但我知道应该去哪里找线索,并且可以把多个线索组合起来。”

这两种能力的差别其实非常大。

DeepSeek v4 flash max 为什么失败了?

这里我倒不想简单得出:

GPT5.6 sol high > DeepSeek v4 flash max。

因为一次测试显然说明不了模型整体能力。

但至少在我这一次实际使用中,两边给我的体验差距很明显。

DeepSeek v4 flash max 更像是在回答:

“这个链接为什么打不开?”

而 GPT5.6 sol high 开始研究的是:

“这个链接是怎么生成出来的?”

这两个问题看起来只差一点点,最后得到的结果却完全不同。

前者的终点很可能是:

需要登录,所以无法下载。

后者则会继续问:

short-url 是什么? Discourse 怎么生成它? 能不能反推原始文件标识? LINUX DO 实际用什么 CDN? CDN 的目录结构是什么?

然后答案就自己浮出来了。

我觉得这才是 AI Agent 真正有意思的地方

现在大家讨论 AI,经常集中在:

但实际用下来,我越来越觉得另外一个能力可能更重要:

遇到一个没有现成答案的问题时,它会不会主动拆问题、找线索、验证假设。

因为现实世界的问题往往不会长成一道标准考试题。

现实更像这样:

“这个东西为什么下载不了?”

你甚至不知道真正的问题是什么。

一个好的 AI 不只是回答这个表面问题。

它可能会继续追:

为什么需要登录?
↓
下载入口和实际文件是一回事吗?
↓
这个系统是什么框架?
↓
框架是怎么存附件的?
↓
URL 里面有什么信息?
↓
真实资源在哪里?

直到把问题重新定义。

这次 GPT5.6 sol high 给我的最大感受,其实就是这一点。

最后

所以我最后还是用了一个稍微标题党一点的标题:

GPT5.6 sol high 帮我绕过了网站的下载登录限制,而 DeepSeek v4 flash max 失败了。

但准确地说,它并没有“黑进”任何东西。

它只是做了一件 AI 特别擅长、同时又特别容易被低估的事:

观察信息,识别规则,然后把看似毫无关系的几个线索串起来。

至于那个附件……

反而成了整件事里最不重要的东西。


Edit page
Share this post:

Previous Post
MacOS马赛克工具