AllanChain / PKUHoleCommunity

P 大树洞网页版社区分支,欢迎大家动手自己实现功能
https://pkuholece.gitee.io/stable/
GNU General Public License v3.0
72 stars 5 forks source link

RCE 漏洞 #64

Closed PkuRH closed 2 years ago

PkuRH commented 2 years ago

会导致用户 token 被盗,详见 Geekgame Q小树洞的一大步

AllanChain commented 2 years ago

麻烦在 issue 中摘抄主要内容,方便其他人阅读。

xmcp 有删库前科,及时备份很重要 :smirk:

我没来得及仔细看,猜测是 CTF 比赛在另一个地方故意弄了个 bug 吧,否则出题人不首先报告 bug 那道德上有问题。

PkuRH commented 2 years ago

https://github.com/PKU-GeekGame/geekgame-1st/blob/45eda0dcd4ac200aea0a8c99d333bcc1cae727ce/writeups/xmcp/README.md?plain=1#L505-L509

AllanChain commented 2 years ago

摘抄如下:

URL 识别逻辑把 URL 后面的内容搬运到搜索框并触发搜索

页面加载时自动搜索 URL # 后面的文字

搜索逻辑检测到隐藏参数,把 localStorage 修改为指定的内容

特殊参数形如 //setflag APPSWITCHER_ITEMS={"switcher_2": {"fix": {"hole": "..."}}}

下次访问时从 localStorage 读取代码并执行

热修复逻辑使用 eval


解决方法

扔掉热修复逻辑

PkuRH commented 2 years ago

摘抄如下:

URL 识别逻辑把 URL 后面的内容搬运到搜索框并触发搜索

页面加载时自动搜索 URL # 后面的文字

搜索逻辑检测到隐藏参数,把 localStorage 修改为指定的内容

特殊参数形如 //setflag APPSWITCHER_ITEMS={"switcher_2": {"fix": {"hole": "..."}}}

下次访问时从 localStorage 读取代码并执行

热修复逻辑使用 eval

解决方法

扔掉热修复逻辑

👏