我正在设计一个大学级计算机安全课程的项目,我正在尝试包含一个漏洞,其中由于许多风险包被列入黑名单而“干净”的代码(unsafe
,os
,ioutil
等)。问题是:你能想到一种方法来使用其他非显而易见的Go标准库包来逃避沙箱吗? “逃离沙箱”这里意味着读/写文件,建立网络连接,打破内存安全(这将允许你做任何其他事情)等。
到目前为止,我尝试过的事情没有奏效:
reflect
包进行不安全的指针转换(reflect
包似乎对这种滥用行为非常安全)reflect
包来访问随机stdlib包所持有的引用到某些敏感函数,如os.Open
(我还没有发现任何实际上保留函数指针或类似的东西)