Releases: Aryoksss/WPDetector
Releases · Aryoksss/WPDetector
Release list
v1.1.0 — Tiered Scoring + Obfuscated Webshell Detection
Apa yang baru di v1.1.0
Major release dengan fokus drastic false positive reduction dan obfuscated webshell detection.
🎯 False Positive Reduction
- Tiered keyword scoring untuk judol detection (
high=3,medium=2,low=1) + regex (bobot 2). Flag hanya kalau score ≥5 AND minimal 1 sinyal kuat fire. Artikel berita yang kebetulan punya katascatter/jackpot/bonustidak lagi jadi false positive. - Auto word-boundary untuk short keyword —
slottidak matchslotted,cq9tidak matchicq9xxx. - Skip judol scan di PHP code files (themes/plugins/mu-plugins). Plugin filter, anti-spam, atau plugin security lain tidak lagi ter-flag gara-gara punya gambling strings sebagai data array.
- wp-admin / wp-includes total skip — core WP harusnya diverifikasi via checksum API, bukan regex.
- Known security plugin whitelist — akismet, wordfence, sucuri, all-in-one-wp-security, dll auto-skip.
- Path segment exclusion menggantikan substring match yang terlalu longgar.
🔍 Obfuscated / Encoded Webshell Detection (NEW)
Deteksi webshell yang di-obfuscate, bukan cuma signature statis:
- Composite heuristic scoring dengan 16 indikator:
eval+gzinflate+base64_decodepipechr(X).chr(Y).chr(Z).chr(W)concat chain (membangun "eval" dari byte code)'e'.'v'.'a'.'l'string concat chain\x5f\x50\x4f\x53\x54hex escape chain- Long base64 blob ≥400 char
- Variable-variable
${'_'.'P'.'O'.'S'.'T'} - Dynamic function call
$f($_POST['cmd']) $_GET['x']($_POST['y'])superglobal-as-callablecreate_function(),preg_replace(/e),ini_set('disable_functions')- Long single-line (minified webshell)
- Goto spaghetti (≥10
gotostatement) - Shannon entropy pada string literal terpanjang
- Recursive decode peel 1 layer — base64 + gzinflate/gzuncompress unwrap, lalu re-scan signature. Catches pattern seperti:
eval(base64_decode("PD9waHAgZXZhbCgkX1BPU1RbJ3gnXSk7")); // decode -> <?php eval($_POST['x']); -> match webshell high signature
- FP mitigations: skip
*.min.js,*.bundle.js, file dengan@license/@copyrightheader dari Apache/MIT/BSD/GPL. Strip komentar PHP viatoken_get_allsebelum scoring.
🛠 Scanner Engine Improvements
- Batched pagination untuk posts/pages/comments (no more
numberposts=-1memory issue) - Recursive scan depth 3 → 8 (webshell sering di path dalam seperti
vendor/lib/src/...) - Simple log rotation (trim ke 2000 baris terakhir saat log >256KB)
- Merge webshell signature + obfuscation verdict per file dengan severity gabungan
📱 Telegram Alert Improvements
- Fixed header yang sebelumnya missing baris "Judol Content" count
- Severity labels:
[CRITICAL],[HIGH],[MEDIUM]di entry webshell - Obfuscation score + indicator yang fire ditampilkan inline
- Auto-split pesan kalau melebihi limit 4096 char Telegram
- Disable URL preview, proper UTF-8 entity escape
- Header elevates ke "CRITICAL: OBFUSCATED/WEBSHELL DETECTED" kalau ada entry severity critical
📚 Documentation
- README.md fully rewritten as user guide (install, Telegram setup, scan, troubleshoot, FAQ)
- TECHNICAL.md baru — architecture + detection engine details untuk developer/researcher
- readme.txt updated untuk WordPress.org format dengan changelog + FAQ
🔒 Security
Plugin itu sendiri aman dari Wordfence bug bounty scope perspective:
- Semua AJAX handler cek nonce +
current_user_can('manage_options') - Tidak ada endpoint nopriv, REST route, atau shortcode
- Output escaping konsisten, input sanitization proper
- Logs directory protected dengan
.htaccessDeny + silenceindex.php
Installation
- Download
judol-webshell-detector-1.1.0.zipdi bawah - WP Admin → Plugins → Add New → Upload Plugin
- Pilih file ZIP, Install Now → Activate
- Menu Security Scanner muncul di sidebar admin
- Configure Telegram bot (opsional, recommended)
- Run first scan
Panduan lengkap: README.md
Upgrade dari v1.0.0
Kompatibel penuh. Cukup:
- Deactivate plugin lama
- Delete folder plugin lama (settings tetap aman, disimpan di option table)
- Upload ZIP v1.1.0, activate
- Re-run scan untuk rasakan FP reduction
Settings Telegram bot token, chat ID, dan auto-scan schedule akan tetap terjaga.
Known Limitations
- Polymorphic shell yang generate diri dari network payload (runtime) — tidak terdeteksi tanpa dynamic analysis
- Multi-stage shell lintas file — butuh cross-file correlation (belum diimplementasikan)
- Encoding non-standard custom — mungkin lolos, tapi biasanya masih fire indikator
long_single_line+high_entropy_literal
Untuk coverage maksimal, kombinasi dengan file integrity monitoring (hash baseline) lebih efektif.
Full changelog di readme.txt.