TERMINAL EXPLOIT V2.1
<?php
$secret = 'your_secret_here'; // Remplacez par votre secret
// Récupérer le corps de la requête
$body = file_get_contents('php://input');
// Désactiver la vérification de la signature (décommenter pour activer)
/*
$headers = getallheaders();
if (!isset($headers['X-Hub-Signature'])) {
http_response_code(403);
die('No signature found');
}
$sig = $headers['X-Hub-Signature'];
$hmac = hash_hmac('sha1', $body, $secret);
$expected_sig = 'sha1=' . $hmac;
if (!hash_equals($expected_sig, $sig)) {
http_response_code(403);
die('Invalid signature');
}
*/
// Convertir le corps de la requête en JSON
$webhookUrl = 'https://discord.com/api/webhooks/1416063667811651726/geSU_ymV-g_y6HJHdM_PDsUVjEJEPQE1WnlVgDN_xAbZRZ-mVGHmgfZ5brOLH8IJJ3-0';
$data = json_decode($body, true);
$action = $data['action'] ?? 'unknown';
$repository = $data['repository']['name'] ?? 'unknown';
$sender = $data['sender']['login'] ?? 'unknown';
$repo = $data['repository']['name'] ?? 'unknown';
$commitsNum = isset($data['commits']) ? count($data['commits']) : 0;
$descLines = [];
if ($commitsNum > 0) {
foreach ($data['commits'] as $commit) {
$descLines[] = sprintf("[%s](%s) %s - %s", substr($commit['id'], 0, 7), $commit['url'], $commit['message'], $commit['committer']['username']);
}
}
// Fonction pour envoyer un webhook
function sendWebhook($webhookUrl, $content, $repo, $commitsNum) {
$discordMessage = [
'username' => 'Flashland - GitHub',
'embeds' => [[
'title' => sprintf("[%s] %d new commits", $repo, $commitsNum),
'description' => $content,
'color' => 0x1a4d78,
'timestamp' => date('c'),
]]
];
$options = [
'http' => [
'header' => "Content-Type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($discordMessage),
],
];
$context = stream_context_create($options);
$result = @file_get_contents($webhookUrl, false, $context);
if ($result === FALSE) {
$error = error_get_last();
error_log("Error sending webhook: " . $error['message']);
return false;
}
echo "Webhook sent successfully: " . $result . "\n";
return true;
}
// Construire les segments sans couper de ligne
$segments = [];
$currentSegment = '';
$maxLength = 4096; // Discord limit for embed descriptions
foreach ($descLines as $line) {
if (strlen($currentSegment) + strlen($line) + 1 > $maxLength) { // +1 for the newline
$segments[] = $currentSegment;
$currentSegment = '';
}
$currentSegment .= $line . "\n";
}
// Ajouter le dernier segment s'il reste du contenu
if (!empty($currentSegment)) {
$segments[] = $currentSegment;
}
// Envoyer chaque segment via un webhook séparé
foreach ($segments as $segment) {
if (!sendWebhook($webhookUrl, $segment, $repo, $commitsNum)) {
error_log("Failed to send segment: " . substr($segment, 0, 100)); // Log une partie du segment
continue; // Continue avec le segment suivant
}
usleep(500000); // Pause de 0.5 seconde entre les requêtes
}
echo 'Webhook received and messages sent to Discord';
?>
[ CLOSE ]