%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
| Server IP : 122.155.177.87 / Your IP : 122.155.177.87 Web Server : Apache/2 System : Linux cat177-87.static.lnwhostname.com 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC 2022 x86_64 User : apache ( 994) PHP Version : 5.3.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname,putenv,eval MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/thungkhana/domains/thungkhanan.go.th/public_html/captchacp/ |
Upload File : |
<?php
/* ============================================================
* 1) ฟังก์ชันตรวจ IP อยู่ใน CIDR (รองรับทั้ง IPv4 และ IPv6)
* ============================================================ */
if (!function_exists('___ip_in_network')) {
function ___ip_in_network($ip, $net_addr, $net_mask) {
$net_mask = (int) $net_mask;
if ($net_mask < 0) { return false; }
$ip_bin = @inet_pton($ip);
$net_bin = @inet_pton($net_addr);
if ($ip_bin === false || $net_bin === false) { return false; }
if (strlen($ip_bin) !== strlen($net_bin)) { return false; }
$max_bits = strlen($ip_bin) * 8;
if ($net_mask > $max_bits) { $net_mask = $max_bits; }
if ($net_mask === 0) { return true; }
$whole_bytes = intdiv($net_mask, 8);
$extra_bits = $net_mask % 8;
if ($whole_bytes > 0 && strncmp($ip_bin, $net_bin, $whole_bytes) !== 0) {
return false;
}
if ($extra_bits > 0) {
$mask = ~(0xff >> $extra_bits) & 0xff;
if ((ord($ip_bin[$whole_bytes]) & $mask) !== (ord($net_bin[$whole_bytes]) & $mask)) {
return false;
}
}
return true;
}
}
/* ============================================================
* 2) หา IP ผู้ใช้จริง
* ============================================================ */
$___client_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
/* ============================================================
* 3) ตรวจเฉพาะ Bot / Scanner ตัวจริงเท่านั้น (ปิดการดัก 'select ' ป้องกันการจับมั่ว)
* ============================================================ */
if (!function_exists('___looks_dangerous')) {
function ___looks_dangerous() {
$ua = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : '';
// บล็อกเฉพาะโปรแกรมสแกนช่องโหว่ทางไซเบอร์ที่ชัดเจนเท่านั้น
$bad_agents = array(
'sqlmap', 'nikto', 'nmap', 'masscan', 'acunetix',
'nessus', 'fimap', 'havij', 'zgrab', 'dirbuster',
'wpscan', 'hydra'
);
// ถ้าไม่มี User-Agent เลย หรือเป็นเครื่องมือยิงสแกน ให้บล็อก
if ($ua === '') { return true; }
foreach ($bad_agents as $b) {
if (strpos($ua, $b) !== false) { return true; }
}
// *** ยกเลิกการตรวจ $bad_patterns (select, ../, <script) ใน Query String ตรงนี้ ***
// เนื่องจากทำให้คนใช้งานทั่วไปที่โพสต์ข้อความปกติโดนบล็อก 403
return false;
}
}
/* ============================================================
* 4) การตัดสินใจ
* ============================================================ */
// ตรวจสอบเฉพาะว่าเป็นโปรแกรมโจมตี (Bot Scanner) หรือไม่เท่านั้น
if (___looks_dangerous()) {
http_response_code(403);
header('Content-Type: text/html; charset=utf-8');
echo "<center><h3>403 Forbidden: Access Denied (Security Check Failed)</h3></center>";
exit();
}
// ปล่อยให้คนทั่วไปเข้าใช้งานและโพสต์เว็บบอร์ดได้ตามปกติ
?>