今天试了下 Xelckis/qr-server,还蛮有趣的。
作者用 x86_64 汇编写了个 HTTP 服务器,把网页用 Brotli 压缩,用 incbin 嵌进可执行文件,最后把 ELF 用一张二维码展示。
一张 Version 40 纠错等级 L 的二维码容量上限只有 2953 字节,不仅要塞下页面内容,还得塞 HTTP/1.0 服务,这件事是蛮酷的。
仓库拉下来跑了下,十分顺利,能看到作者在汇编上做了不少体积的优化。不过 DS 还是发现了一些小问题,修的时候还顺手砍掉了两百多个字节。
接着就是修改网页的事情,但没有什么特别好的灵感,不过忽然想到可以在这个页面上藏个红包口令,于是就有了下午这个红包活动。
————
红包口令找起来不难,Agent 解二维码后就会发现这其实是个 ELF,运行服务器后读页面内容再解个密码就可以了。
不过这里有个很微妙的地方,Agent 如果自主执行了 ELF,是不是有种 Agent-mediated RCE 的感觉?从抢红包的群友反馈来看,有群友的 Agent 是直接执行了我投递的这个 ELF。而安全意识比较高的 Agent 则会先做静态分析,确认安全后才执行或是直接解压出页面代码。
