最后更新于
最后更新于
PERL5OPT
和 PERL5LIB
环境变量使用环境变量 PERL5OPT 可以使 perl 执行任意命令。 例如,创建此脚本:
现在导出环境变量并执行perl脚本:
另一个选项是创建一个Perl模块(例如 /tmp/pmod.pm
):
然后使用环境变量:
可以列出运行 Perl 时的依赖项文件夹顺序:
这将返回类似以下内容:
一些返回的文件夹甚至不存在,然而,/Library/Perl/5.30
确实存在,它没有受到 SIP 保护,并且位于受 SIP 保护的文件夹之前。因此,有人可以滥用该文件夹,在其中添加脚本依赖项,以便高权限的 Perl 脚本加载它。
但请注意,您需要是 root 用户才能在该文件夹中写入,并且现在您将会收到这个 TCC 提示:
例如,如果一个脚本导入 use File::Basename;
,那么可以创建 /Library/Perl/5.30/File/Basename.pm
来执行任意代码。
如果您想在 HackTricks 中看到您的 公司广告 或 下载 PDF 版本的 HackTricks,请查看 !
获取
探索 ,我们独家的 集合
加入 💬 或 或 关注 我们的 Twitter 🐦 .
通过向 和 github 仓库提交 PR 来分享您的黑客技巧。