我通过黑客入侵进入了YC(Startup School)

Hacker News Top 新闻

摘要

一名开发者发现并公开披露了Y Combinator的Paxel评分系统中的一个漏洞,该漏洞允许伪造评分,随后该开发者受邀参加了Startup School。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/24 20:03

# 我是如何通过黑客手段进入YC的 来源:https://obaid.wtf/jotbook/2026/07/18/how-i-got-into-yc-by-hacking-it.html **摘要:**我发现Y Combinator通过Paxel对全球超过10万名创始人进行评分,我攻破了它(可能是彩蛋),并发现了一个漏洞——由于未经验证的hmac,任何人都可以伪造并向其排名数据库推送任意分数。 **最新动态:**YC令人钦佩地没有在意。在首次公开披露后的短短几小时内,Jared Friedman本人就回复了我,宣布已打补丁,并邀请我参加今年夏天在旧金山举办的Startup School!我此前12天也通过邮件私下披露过,但未收到回复。但至少在公开流程中,这套机制是有效的。 来自Jared Friedman(@snowmaker)的推文,回复@wtfobaid:令人印象深刻的黑客技术!对所有抱有希望的申请者表示抱歉,但我们已修复了这个bug:)。Obaid,感谢你报告问题。期待两周后在旧金山的Startup School见到你!发布时间:2026年7月11日上午10:23。(https://x.com/snowmaker/status/2075813151069925440)Jared Friedman,2026年7月11日(https://x.com/snowmaker/status/2075813151069925440)本文是早期草稿(https://obaid.wtf/jotbook/2026/07/11/yc-startup-school-26-application-i-hacked-paxel.html)的重写版,我在那篇草稿中首次公开了该漏洞。那篇写得很糟,因为睡眠不足,我觉得不够好,所以没有公开宣传。 —— —— —— 一切始于六月初,当时我找到了Startup School 26'的申请表格(由Dhanush推荐:向Audora S26致敬,他们正在做出不可思议的东西!)。我发现今年YC要求我在申请过程中使用一个叫做*Paxel*的东西。 我需要运行一个脚本,一个非常易用的cURL单行命令,它会在我的电脑上安装某些东西,并用编程代理分析我写过的每一行代码,生成一份报告,然后上传到YC的服务器。 Paxel的主站(https://paxel.ycombinator.com/)告诉我,其主要功能是让我能够“可视化”我的工作,并获得一些有趣的属性,比如“你是哪种原型?”和“你最大的崩溃是什么?”听起来挺有趣的。 但我想确切知道它是*如何*做到的,当我的好奇心开始变得近乎偏执时,结果无非是两种:要么是传奇般的崩溃,要么是做成某件大事。幸运的是,这次是后者。 我也不得不说:我真的很想(或者说需要)攻破它。我知道自己在填写申请时处于劣势(没有正规的常春藤教育背景),但我知道这将是一条快速通道,是确认我被录取的稳妥方法。我不是在痴人说梦,我知道如果能做到会很疯狂,但为什么不全力以赴呢? 根据Paxel自己的网站,目前已有**超过120万名程序员**向YC上传了他们的报告。看到这些数字,说实话,我很震惊自己竟是世界上第一个发现并攻破这一切的人。 —— —— —— > *顺便说一句*,在深入之前,我认为自从具备代理能力的LLM出现以来,世界上所谓的“黑客”成就已经大打折扣。这当然符合现实,因为LLM让做这些事变得容易得多。但我认为这种容易程度被有些高估了,一方面是因为LLM有许多奇怪的盲点,另一方面是缺乏某种“黑客”思维或对抗性的智能方式。至于这是出于安全限制还是训练方式的问题,留待以后讨论。 > 因此,虽然LLM在帮助你以10倍甚至50倍更少的时间完成相同内容(研究、调查)方面具有改变世界的作用,但当LLM用近乎完美的逻辑坚持认为一切可被黑客的东西都不可被黑客时,与它们沟通并保持自身思维敏锐独立常常是一件很困难的事。 —— —— —— Paxel的用户体验非常棒,所有操作都通过一个单行命令`curl -fsSL https://paxel.ycombinator.com/upload.sh | bash`完成。它会自动扫描你的整个系统,提示你回答问题,并处理上传——之后你无需担心任何事情。 所以,自然的第一步就是这个安装脚本。我首先将它拆分成4个独立的模块。当我试图完整地攻破它时,我交给的每个LLM都开始出现严重的幻觉(上下文窗口大小增加并非完美!)。 原来,这个安装脚本实际上并不能独立运行。它会下载一个完整的Docker镜像,其中托管着一个Ruby应用,解包后通过你电脑上已安装的Docker在本地运行。因此,该应用实际上分为两部分: 1 ─▶ upload.sh 302KB安装脚本。处理认证、发现项目、提取git历史,并初始化Docker。 2 ─▶ 从Docker镜像解包后的Ruby应用。它按项目运行实际的完整流程。 1. 首先,它将所有聊天记录分组为YC发明的工作单元——“episodes”(片段)。每个片段对应每个PR中的所有提交,如果失败则 ─▶ 每个在2小时爆发期内提交的提交 ─▶ 如果还是失败,则每个聊天会话成为一个独立的片段。 2. 然后,它将它们上传到一个YC赞助的(有趣的发现!)免费gpt-5.5代理,地址为paxel-llm.ycombinator.com。 3. 获取每个片段的摘要,将其与其他数据汇总,并将最终报告上传到paxel.ycombinator.com/api/v1/results。 正是在这里,我发现你所做的每一项工作都被打分、评分、排名,而地球上程序员们的120万份报告已被编译完成。 执行能力、决策能力、工程质量、产品思维、规划能力——**这是LLM评分的核心5个维度**,它给每个维度打出1-10分的分数,并附上自由文本备注。 同样也正是在这里,我发现了最明显的漏洞。你看,这个程序是一个很好的分布式/去中心化应用的例子(并非所有事情都必须在专有服务器上运行和整合)。 但去中心化应用的问题在于,它们严重依赖某些非常基础的加密函数。而这个流程缺少了一个非常、非常重要的函数。 LLM代理会随着每个片段返回一个nonce(一次性数字),这个nonce在LLM服务器和上传服务器之间共享。理论上,它应该从LLM ─▶ 本地 ─▶ POST /v1/results 传递,该端点会验证只有原始的LLM结果才会被接受。 理论上。 然而实际上发生的是,这个nonce未能对LLM的结果、分数和备注进行签名编码,因此尽管它确实验证了nonce(服务器正确拒绝了无效或缺失nonce的请求,并且nonce使用一次后即失效),但缺失签名意味着整个片段及其分数可以被更改为任意内容并上传给YC。 而且YC接受了。 不仅接受,而且如果我提高了分数或更改了备注,同一个项目的报告会大相径庭。 完全相同的项目,完全相同的聊天记录。 而且我更进一步。使用同样的单行命令(我喜欢Paxel的UX!),我制作了paxel-boosted(https://paxel.obaid.wtf/),这是一个黑客工具,允许世界上任何人通过启动一个镜像工具来上传伪造的报告。我自费赞助了这个提升代理,因为需要添加环境变量对于用户体验来说太糟糕了。 **obaid.wtf** — bash — boosted-paxel 在从公开到YC宣布修补的短短几个小时内,我的20多名用户成功将自己排入了YC数据库的全球前1%。 ## 修复方法 缺失了两个基本的加密函数。 LLM代理响应 vs 上传有效载荷——哪些字段是可密封、可签名、本地存储或丢弃的(https://obaid.wtf/assets/paxel-payload-map.png) 蓝色+绿色字段需要在哈希中被签名。绿色字段还需要被密封和加密。 我们可以把/v1/results接受的所有字段分为3类(两类重要,一类涵盖其他所有),如上图所示。 **1)** 那些从LLM ─▶ /v1/results 几乎原样传递的字段(上图中绿色+蓝色高亮),这些字段应该全部被滚动并哈希到nonce中作为hmac。Nonce已经被验证,这样就能确保每个nonce实际与LLM的响应绑定。 `nonce = hmac(request_id)` ─▶ `nonce = hmac(request_id + scores.steering + scores.product_thinking + ... + title)` 这实际上就是YC所做的修补,并已宣布,几乎完全按照我在最初草稿(https://obaid.wtf/jotbook/2026/07/11/yc-startup-school-26-application-i-hacked-paxel.html)中建议的那样。 **2)** 那些(1)从LLM ─▶ /v1/results 几乎原样传递 AND(2)在客户端从未使用过的字段。是上述字段的一个子集(图中绿色高亮),这些字段应该使用只有服务器拥有和共享的AEAD密码(或非对称公钥/私钥)进行加密,这样客户端就无法看到诸如5维度评分、片段标题和备注等细节。 这个是可选的,本质上是一种模糊处理,但如果从一开始就这么做,我永远不可能知道该嗅探什么、该更改什么,而且它会覆盖第一个漏洞最严重的影响—— —— —— —— 有可能这个整个“漏洞”是一个秘密彩蛋,用来找出谁能攻破它,或者是一个蜜罐——它不会抛出验证错误,但会秘密监视谁发现了并正在“黑客”它——但从这个流程和Paxel的编写方式来看,我认为很可能并非如此。 现在,自从Jared回复后,这个漏洞显然已经被修补了,但我的工具在显示原始分数方面仍然有用!欢迎查看(https://paxel.obaid.wtf/)。 如果你下周(7月21日至8月6日)也会在旧金山参加Startup School相关活动,欢迎在LinkedIn或Twitter上联系我,推荐一些地方、活动或人士,让我能找到下一位联合创始人,一起建造能够改变时代的东西——我们可以联系。

相似文章

YC有它

Product Hunt

一款让用户描述问题并找到解决该问题的Y Combinator初创公司的工具。

Y Combinator 最大丑闻

Hacker News Top

一篇调查报告详细记录了涉及 Y Combinator 投资组合公司的重大丑闻,包括 Delve 的 AI 审计欺诈、Central 的知识产权盗窃,以及 Naive 对开源 AI 的虚假陈述。

ExploreYC

Product Hunt

ExploreYC 是一款新产品,为 Y Combinator 的初创企业生态系统提供数据层。