macOS Perl Applications Injection
通过 PERL5OPT
和 PERL5LIB
环境变量
PERL5OPT
和 PERL5LIB
环境变量使用环境变量 PERL5OPT 可以让 perl 执行任意命令。 例如,创建此脚本:
test.pl
现在导出环境变量并执行perl脚本:
另一个选项是创建一个 Perl 模块(例如 /tmp/pmod.pm
):
/tmp/pmod.pm
然后使用环境变量:
通过依赖项
可以列出运行 Perl 的依赖项文件夹顺序:
哪个会返回类似:
一些返回的文件夹甚至不存在,然而,/Library/Perl/5.30
确实存在,它没有被SIP保护,并且位于被SIP保护的文件夹之前。因此,有人可以滥用该文件夹,在其中添加脚本依赖项,以便高权限的Perl脚本加载它。
然而,请注意,您需要是root用户才能写入该文件夹,而且现在您将会收到这个TCC提示:
例如,如果一个脚本正在导入**use File::Basename;
**,那么可以创建/Library/Perl/5.30/File/Basename.pm
来执行任意代码。
参考资料
Last updated