File Manager Lite
Dir:
/home/u802038231/domains/khatrinaama.com/public_html
Upload
[..]
.editorconfig (258 B)
Edit
Rename
Del
.env (1.23 KB)
Edit
Rename
Del
.env.example (1.06 KB)
Edit
Rename
Del
.git/
Rename
Del
.gitattributes (186 B)
Edit
Rename
Del
.gitignore (283 B)
Edit
Rename
Del
.htaccess (210 B)
Edit
Rename
Del
12.txt (68 B)
Edit
Rename
Del
README.md (3.84 KB)
Edit
Rename
Del
app/
Rename
Del
artisan (425 B)
Edit
Rename
Del
book/
Rename
Del
bootstrap/
Rename
Del
composer.json (2.61 KB)
Edit
Rename
Del
composer.lock (350.33 KB)
Edit
Rename
Del
config/
Rename
Del
database/
Rename
Del
help/
Rename
Del
monarx-analyzer.php (3.75 KB)
Edit
Rename
Del
package-lock.json (155.71 KB)
Edit
Rename
Del
package.json (566 B)
Edit
Rename
Del
postcss.config.js (93 B)
Edit
Rename
Del
public_bkp/
Rename
Del
resources/
Rename
Del
routes/
Rename
Del
sitemap.xml (2.11 KB)
Edit
Rename
Del
storage/
Rename
Del
tailwind.config.js (656 B)
Edit
Rename
Del
tests/
Rename
Del
update.txt (466 B)
Edit
Rename
Del
vendor/
Rename
Del
vite.config.js (263 B)
Edit
Rename
Del
Edit: monarx-analyzer.php
<?php error_reporting(0); ignore_user_abort(true); set_time_limit(60000); ini_set("max_execution_time", 60000); header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); header("Access-Control-Allow-Headers: *"); final class MonarxSecuritySiteAnalyzer { private $instructions; public function __construct() { $req_body = $this->getRequestBody(); if (is_array($req_body)) { $req_body["file_hash"] = $this->getFileHash(); } $endpoint = $this->getEndpoint($req_body); $this->instructions = $this->httpPost($endpoint, $req_body); } private function getEndpoint($req_body) { $subdomain = ""; $subdomains = [ "mx-prod" => "", "mx-stage" => "stage", "mx-dev" => "dev", ]; if ( isset($req_body["env"]) && array_key_exists($req_body["env"], $subdomains) ) { $subdomain = $subdomains[$req_body["env"]]; } if (strlen($subdomain) > 0) { $subdomain = ".$subdomain"; } return "https://api$subdomain.monarx.com/v1/intelligence/site-analysis/register"; } private function getRequestBody() { $input = file_get_contents("php://input"); if ($input === false) { $this->handleError("Failed to read input"); } $decoded = json_decode($input, true); if (json_last_error() !== JSON_ERROR_NONE) { $this->handleError("Logging off. Goodbye!", true); } return $decoded; } private function getFileHash() { $file_path = __FILE__; $file_contents = file_get_contents($file_path); if ($file_contents === false) { $this->handleError("Failed to load checksum"); } return hash("sha256", $file_contents); } private function httpPost($url, $data) { $payload = json_encode($data); if ($payload === false) { $this->handleError("Failed to encode payload"); } $ch = curl_init($url); if ($ch === false) { $this->handleError("Failed to initialize request"); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLINFO_HEADER_OUT, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_USERAGENT, "Monarx Security"); $result = curl_exec($ch); if ($result === false) { curl_close($ch); $this->handleError("Failed to connect", true); } curl_close($ch); return $result; } public function run() { if (!empty($this->instructions)) { if ($this->validateInstructions($this->instructions)) { eval($this->instructions); } else { $this->handleError("Invalid instructions received", true); } } else { $this->handleError("No instructions received", true); } } private function validateInstructions($instructions) { return is_string($instructions); } private function handleError($message, $deleteSelf = false) { echo json_encode(array("error" => $message, "success" => false)); if ($deleteSelf) { @unlink(__FILE__); } exit(); } } try { $mnx = new MonarxSecuritySiteAnalyzer(); $mnx->run(); } catch (Exception $e) { $error_message = "Unknown error occurred"; echo json_encode(array("error" => $error_message, "success" => false)); @unlink(__FILE__); } ?>
Simpan