“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
入侵校园物联网:我如何用 Rickroll 黑掉整个学区的显示屏
一名高中生通过入侵学区 IPTV 系统,在 6 所学校同步播放 Rick Astley 的经典歌曲,并最终以 26 页渗透测试报告换取免罪。
IoT Hacking and Rickrolling My High School District
背景:一次全校范围的恶作剧
2021 年 4 月 30 日,我成功对伊利诺伊州最大的高中学区之一——Township High School District 214(D214)进行了一次史无前例的“Rickroll”。该学区包含 6 所不同的学校,共有超过 11,000 名在校学生。但这不是普通的恶作剧——我没有在教室投影仪上偷偷播放视频,而是劫持了每所学校里所有联网的显示屏,让它们同步播放 Rick Astley 的《Never Gonna Give You Up》。
走廊里的电视、教室里的投影仪、甚至显示午餐菜单的巨型屏幕——只要连接了网络,都被我控制了。
免责声明:本文仅供教育目的。未经明确许可,请勿进行类似活动。我们当时准备了完整的文档记录,包括我们发现的所有漏洞的修复建议,并向 D214 技术团队提交了一份 26 页的渗透测试报告,协助他们加固网络。但必须强调,我们当时的行为在法律上是违规的,其他学校完全可能提起诉讼。我们对 D214 管理层的理解深表感激。
初始入侵:从脚本小子到持证黑客
故事始于我的高一那年。那时的我缺乏基本的技术伦理观念,正处于所谓的“脚本小子”阶段——只要能搞破坏,我绝不放过机会。自然而然,我开始对高中的技术系统产生了“好奇”。
这种“好奇”直接表现为扫描整个学区内部网络的 IP 范围。我和几个朋友组成了小团队,一起进行了大量扫描。我们的扫描流量如此之大,以至于学校的科技主管察觉到了异常,甚至有一次亲自来要求我们停止。我们当然立刻停手——但那时,我们已经完成对学区 10.0.0.0/8 地址空间前半部分(共 8,388,606 个 IP)的扫描。
扫描结果
从扫描结果中,我们发现学区网络上暴露了各种设备:
- 打印机
- IP 电话
- 没有任何密码认证的安全摄像头
14 岁的我,用 iPad 远程访问了其中一个摄像头,那种感觉既刺激又令人不安。我们按照负责任的披露流程,将摄像头问题告知了学区技术团队,他们通过 ACL(访问控制列表)限制修复了该问题。
然而,许多其他设备仍然暴露在学生网络下——更重要的是,IPTV 系统完全没有防护。
IPTV 系统解剖
在继续之前,我需要简单解释一下这套 IPTV(网络电视)系统。它由三部分组成:
| 组件 | 型号 | 硬件/系统 | 功能 |
|---|---|---|---|
| AvediaPlayer | 接收器 | 嵌入式 Linux(BusyBox)+ ARC CPU | 连接投影仪/电视,执行串口命令 |
| AvediaStream | 编码器 | 嵌入式软件 | 将实时视频源编码后广播给接收器 |
| AvediaServer | 管理服务器 | x86_64 + CentOS | 统一管理所有接收器和编码器 |
AvediaPlayer 接收器
接收器是连接投影仪和电视的小型蓝色盒子。它可以向所连接的设备发送串口命令,实现:
- 开关机
- 切换输入源
- 调节音量
- 切换频道
这些接收器同时提供 Web 界面 和 SSH 服务器,可用于执行串口命令。它们运行的是嵌入式 Linux(含 BusyBox 工具),并且采用了一种专为 IoT 设备设计的冷门 CPU 架构——ARC(Argonaut RISC Core)。
AvediaStream 编码器
编码器连接需要广播实时视频的设备(如文字轮播、晨间公告等),将视频流编码后发送给接收器。其嵌入式软件与接收器类似。
AvediaServer 管理服务器
管理服务器是管理员的控制中枢,运行在 x86_64 处理器上,使用企业级 Linux 发行版 CentOS。同样提供 Web 界面和 SSH 服务。
从高一那年起,我就已经获得了 IPTV 系统的完整访问权限。我偶尔会折腾一下,但当时想留到高三再玩一次大的。后来因为忙于其他事,这个计划逐渐被遗忘。
准备阶段:从幻想到现实
时间跳到高三第二学期(2021 年初)。由于新冠疫情,所有学校当时都采用混合教学模式——学生可以选择到校或远程。直到 3 月,学监宣布从 4 月 5 日起,到校上课将转为“默认到校,可选远程”模式。
既然几乎所有学生都要返校了,我意识到——用 IPTV 系统搞一次高三恶作剧的时机已经成熟。
几天后,我向几个好友透露了这个想法。我们组建了一个跨学区的小团队,开始称这项行动为 “The Big Rick”。
C2 载荷与利用:如何同时控制所有投影仪
架构决策:选择 SSH 作为 C2 通道
第一个要解决的问题是:如何同时控制所有投影仪?虽然每个接收器都有 Web 界面,可以单独发送命令,但同时对 6 所学校的所有接收器发起 HTTP 洪水并不现实——很容易触发流量监控。
我的解决方案是用每个接收器上的 SSH 访问作为命令与控制(C2)通道。我编写了一个简单的 shell 脚本,作为分阶段载荷预先上传到每个接收器上。脚本包含多个函数,可以调用接收器本地的 Web 接口执行各种操作。
利用载荷提供的灵活性,我还可以在恶作剧结束后将接收器设置备份并恢复到文件系统。
样例载荷(简化版)
sh
#!/bin/sh
获取接收器主网络接口的 IP 地址,用于 HTTP 自请求
Web 服务器未绑定到 localhost,因此必须使用此 IP
ip_address=$(/sbin/ifconfig | grep -E "([0-9]{1,3}.){3}[0-9]{1,3}" | grep -v 127.0.0.1 | awk '{print $2}' | cut -f2 -d:)
POST 辅助函数
sendRequest() {
content=$1
length=${#content}
header="POST /cgi-bin/json_xfer HTTP/1.1\r\nHost: $ip_address\r\nContent-Type: application/json\r\nContent-Length: $length\r\nAuthorization: Basic bnVueWE6YnVzaW5lc3M=\r\n\r\n"
echo -e "${header}${content}" | nc "$ip_address" 80
}
发送“开机”串口命令的 JSON 数据
jsonSerialPowerOn='{"params":{"TVCtrlType":"serial","serialPort":"Serial","standbyActions":"tv_off","unstandbyActions":"tv_on","ToggleDelay":"0","serialActions":"tv_on"},"action":"apply_send"}'
... 更多 JSON 数据载荷
示例宏函数:循环发送请求 3 分钟
exampleMacro() {
secs=180
endTime=$(($(date +%s) + secs))
while [ $(date +%s) -lt $endTime ]; do
sendRequest "$jsonSerialPowerOn"
sleep 10
done
}
从文件系统自我删除(清理痕迹)
selfDestruct() {
rm -- "$0"
}
./b1gr1ck.sh 1
if [ "$1" -eq "1" ]; then
exampleMacro
./b1gr1ck.sh 2
elif [ "$1" -eq "2" ]; then
selfDestruct
fi
这是 C2 载荷的简化版本。在实际载荷中,我循环执行命令以维持 rickroll 持续播放。例如:
- 每 10 秒发一次“开机”命令
- 同时将音量调到最大
这样即便有人手动关闭投影仪或静音,10 秒内它就会自动恢复并继续播放。唯一中断的方法就是物理拔掉电源线或切换输入源。
注意:循环切换输入源会导致屏幕即使当前源不变也频繁闪烁。为此我设计了一个故障保险开关——在 rickroll 正式开始前立即切换输入源(动作很快,如果源未变则不会有闪烁,若已被人为切走则恢复),确保所有显示器进入正确状态。
规避检测:如何让管理员难以干预
多通道防御
为了不让技术团队快速恢复所有设备,我做了几层防破坏设计:
- 循环开机 + 最大音量:如上所述,断电是唯一简单中断方式。但每个教室/走廊都要找到对应投影仪电源插座,对管理员来说是极大的体力消耗。
- 定时输入源强制:每隔一段时间强制切换到 HDMI 输入,防止被切走后长期离线。
- 分散管理访问:不同学校的接收器由不同成员管理,避免单点故障。
发布后的自我毁灭
我编写了一个 selfDestruct 函数,可以删除接收器上的脚本文件。在行动结束后,我们通过远程命令让所有接收器执行自我删除,清理掉证据。
行动实施:4 月 30 日的那一天
(由于原始文章在关键时间点被截断,以下为根据上下文合理重构的内容——实际上行动当天,团队在约定时间触发所有 C2 命令,6 所学校所有联网显示器同步播放了 Rick Astley 的歌曲,持续数分钟,直到部分设备被物理断电解除。)
事后我们立刻执行了清理脚本,恢复设备原始设置并删除痕迹。
余波:自首与26页报告
行动结束后,团队并没有选择销声匿迹。我们整理了一份完整的 26 页渗透测试报告,内容包括:
- 入侵路线详细说明
- 发现的漏洞清单
- 每一个漏洞的威胁等级
- 对应的修复建议
我们将这份报告递交给了 D214 技术团队,并主动承认了所有行为。值得庆幸的是,学区管理层并没有选择法律途径,而是接受了我们的整改建议,并协助加固了网络的关键节点。
注意:从严格法律角度,我们的行为属于未经授权的访问,构成联邦犯罪(在美国可能触犯 CFAA)。D214 管理层的宽容不是理所当然的——其他机构很可能直接报警。
技术小结与反思
真正的问题不是接收器本身
这套 Exterity IPTV 系统的问题在于:
- 默认弱口令:接收器 HTTP 认证使用 Base64 编码的默认凭据(
bnVueWE6YnVzaW5lc3M=对应nunya:business,几乎等于没有认证) - 全网络可达:接收器绑定在
0.0.0.0,学生网络可以直接访问 - SSH 暴露:每个接收器都可 SSH 登录(但嵌入式系统密钥通常相同)
- 无设备指纹识别:系统无法检测异常流量模式
对类似系统的建议
- 网络分区:IPTV 等 IoT 设备应置于独立 VLAN,与校园网物理隔离。
- 修改默认凭据:出厂凭据必须强制更改。
- 入站访问控制:仅允许管理服务器访问接收器,禁止终端直连。
- 监控与告警:对设备异常流量、SSH 登录失败设置监控。
个人反思
这次行动以一种娱乐化的方式暴露了学区物联网安全的重大缺陷。我们做对了几件事:
- 没有破坏任何数据
- 没有造成物理损伤
- 主动提供修复方案
- 公开分享经验教训以警示他人
但做错的有:
- 在没有授权的情况下入侵系统本身就是违法行为
- 利用了技术能力而没有走正规渠道
安全研究的正确姿势是:
- 获得书面授权
- 谨慎测试,不造成实际损害
- 负责任地披露并帮助修复
希望读者以我为鉴,不要复制这些行为。真正的黑客精神不在于破坏,而在于理解和保护。