Stupidc0de Backdoor is the largest and most feature-complete tool in the corpus: 90 KB, 2030 lines of PHP, twelve distinct function modules, and zero authentication on any of them. It is the flagship of the Indonesian “Stupidc0de Family” collective, with five distinct handles embedded in the source — Putra-Attacker, Daryun, Shor7cut, Osvaldas, and Sinkaroid — alongside a contact email, a Facebook profile, and the group’s branded domain. No other tool in the collection leaks as many operator identities in a single file.
Capabilities
The menu spans the full spectrum of post-compromise operations: file management, command execution, config grabbing, domain enumeration, mass tools, cPanel utilities, bypass tools, file creation, RDP account creation, cross-account jumping, and a database dumper. Every module is available to any visitor without authentication. The tool also contains a WordPress admin password reset module that can change the admin credentials of any WordPress installation on the same server, and a zone-h.com mass-defacement notifier packed inside a gzinflate-compressed payload — automating the “claim” step of defacement campaigns.
The runtime dependency on PHP 5.6 is hard: the code uses eregi, mysql_connect, and each(), all removed in PHP 7.0. On modern servers the shell returns a 500 error. This is not a design choice — it is technical debt from the 2013-2014 era of shared hosting where PHP 5.x was universal. The tool was built for that ecosystem and never updated.
Supply-Chain Surface
The supply-chain surface is the most extensive in the corpus. Five functions perform runtime remote-includes: four fetch code from Pastebin URLs and one pulls from a GitHub repository. These are not one-time downloads — they execute on every invocation of the corresponding module. If any of the four Pastebin pastes or the GitHub account is compromised, every deployed Stupidc0de instance silently executes the replacement payload.
Vulnerabilities
| # | Class | Impact | Status |
|---|---|---|---|
| 1 | Pre-auth RCE | Full system command execution | Live-proven |
| 2 | Pre-auth LFI — confirmed /etc/passwd | Arbitrary file read | Live-proven |
| 3 | Pre-auth arbitrary file upload | Full filesystem write | Live-proven |
| 4 | Zero authentication on all 12+ function modules | Unrestricted access | Confirmed |
| 5 | 5 runtime supply-chain remote-includes (4 Pastebin + 1 GitHub) | Remote code injection | Confirmed |
| 6 | WordPress admin password reset — unauthenticated | CMS takeover | Confirmed |
The self-incrimination is extraordinary. A meta author tag, an email address, a Facebook profile, five separate handles, and a branded domain — all embedded in a file that ships with zero authentication. The name “Stupidc0de” is, in this context, not merely a brand. It is an accurate description.
Detection Surface
File-system indicators
| Indicator | Type | Detail |
|---|---|---|
| Expected size | ~90 KB / 2030 lines | Largest tool in corpus |
Stupidc0de | String | Tool name in source |
Stupidc0de Family | String | Author group identification |
Putra-Attacker, Daryun, Shor7cut, Osvaldas, Sinkaroid | Strings | 5 named contributors |
| Zero authentication | Auth | No auth on 12+ function modules |
| 5 remote-include URLs | Code pattern | Runtime supply-chain — include() from external URLs |
zone-h reference | String | Mass defacement notifier |
| Runtime | PHP 5.6 only |
HTTP access-log indicators
| Log pattern | What it means |
|---|---|
| No authentication on any module | Zero auth across 12+ function modules |
Outbound include() from remote URLs | 5 runtime supply-chain remote-includes |
zone-h outbound | Mass defacement notifier |
POST cmd= | Command execution |
| Response >80KB from single PHP file | 90KB / 2030 lines — largest tool in corpus |
YARA rule
rule webshell_stupidc0de {
meta:
description = "Stupidc0de Backdoor (Indonesian scene, 90KB full-featured)"
author = "OHIIHO Threat Research"
reference = "https://research.ohiiho.com/arsenal/stupidc0de/"
status = "validated"
strings:
$title = "Stupidc0de" ascii
$family = "Stupidc0de Family" ascii
$author1 = "Putra-Attacker" ascii
$author2 = "Daryun" ascii
$author3 = "Shor7cut" ascii
$author4 = "Sinkaroid" ascii
$email = "puputsc48@gmail.com" ascii
$html_title = "-:- Backdoor -:-" ascii
$css_class = "class='coeg'" ascii
$conf_dir = "Stupidc0de-Conf" ascii
condition:
filesize < 120KB
and ($title or $family or $html_title or $conf_dir)
and ($author1 or $author2 or $author3 or $author4 or $email or $css_class)
}
MITRE ATT&CK
| Technique | Context |
|---|---|
| T1505.003 | Web Shell |
| T1059.004 | Command and Scripting Interpreter: Unix Shell (live RCE) |
| T1083 | File and Directory Discovery (config grabber, domain enumerator) |
| T1552.001 | Unsecured Credentials: Credentials In Files (CMS config harvest) |
| T1608.001 | Stage Capabilities: Upload Tool (5x runtime remote-includes) |
| T1491.002 | Defacement: External (zone-h mass notifier) |
| T1136 | Create Account (WordPress admin password reset) |
OHIIHO Threat Research.
