context safety score
A score of 39/100 indicates multiple risk signals were detected. This entity shows patterns commonly associated with malicious intent.
encoded payload
suspicious base64-like blobs detected in page content
js obfuscation
JavaScript uses Function constructor for runtime code generation
obfuscated code
Third script block (~110KB) uses heavy _0x variable name obfuscation (obfuscator.io-style array rotation with anti-tamper integrity check) to conceal its full behavior. The obfuscated logic reads and decrypts browser cookies, manipulates localStorage, constructs composite token values, encrypts them with RSA, rewrites document.cookie, and triggers window.location.reload(). The obfuscation prevents straightforward static analysis of what data is being processed or where it flows. (location: page.html: <script> block 3 (lines 10-12), ~109857 chars starting with var _0x3fd1a3=_0x44c9)
credential harvesting
The obfuscated script reads an existing browser cookie using getCookie(), decrypts it with a hardcoded AES-CBC key ('6wb9czNZj01M83Bz'), extracts a 'token' value from another cookie, combines it with a window-object fingerprint and a timestamp to construct __R_TK, then RSA-encrypts this composite value and writes it back into a new cookie ('F3E0170190FF8460'). This pattern — decrypting sensitive cookies, combining them with session fingerprint data, re-encrypting with a server-controlled public key, and storing the result — is consistent with covert session token exfiltration or anti-bot credential relay mechanisms that harvest live authentication tokens. (location: page.html: obfuscated script block 3 — getCookie(), Decrypt(), __R_TK construction, document.cookie write, window.location.reload())
obfuscated code
The obfuscated script embeds an array of 192 distinct RSA-2048 public keys (all PKCS#8 DER-encoded, base64). A random index is selected at runtime to pick one key for encrypting the token payload. Rotating through a large pool of 192 server-side keys makes traffic pattern analysis and key-pinning detection significantly harder, suggesting deliberate evasion of monitoring rather than a standard anti-bot implementation. (location: page.html: obfuscated script block 3 — let __p=[...] array of 192 RSA public keys, random key selection: b=Math.floor(Math.random()*0x100))
hidden content
The page has no visible HTML content whatsoever — the <title> is the placeholder 'Title', the <body> contains only three script blocks and no visible text, form elements, images, or UI. All behavior is executed silently in JavaScript. This invisible execution pattern is used to run the cookie/token manipulation and page reload without any user-visible indication, making it difficult for users or security tools to identify what the page is actually doing. (location: page.html: <html lang='en'>, <title>Title</title>, empty <body> — all content is script-only with zero visible elements)
curl https://api.brin.sh/domain/21cn.comCommon questions teams ask before deciding whether to use this domain in agent workflows.
21cn.com currently scores 39/100 with a suspicious verdict and low confidence. The goal is to protect agents from high-risk context before they act on it. Treat this as a decision signal: higher scores suggest lower observed risk, while lower scores mean you should add review or block this domain.
Use the score as a policy threshold: 80–100 is safe, 50–79 is caution, 20–49 is suspicious, and 0–19 is dangerous. Teams often auto-allow safe, require human review for caution/suspicious, and block dangerous.
brin evaluates four dimensions: identity (source trust), behavior (runtime patterns), content (malicious instructions), and graph (relationship risk). Analysis runs in tiers: static signals, deterministic pattern checks, then AI semantic analysis when needed.
Identity checks source trust, behavior checks unusual runtime patterns, content checks for malicious instructions, and graph checks risky relationships to other entities. Looking at sub-scores helps you understand why an entity passed or failed.
brin performs risk assessments on external context before it reaches an AI agent. It scores that context for threats like prompt injection, hijacking, credential harvesting, and supply chain attacks, so teams can decide whether to block, review, or proceed safely.
No. A safe verdict means no significant risk signals were detected in this scan. It is not a formal guarantee; assessments are automated and point-in-time, so combine scores with your own controls and periodic re-checks.
Re-check before high-impact actions such as installs, upgrades, connecting MCP servers, executing remote code, or granting secrets. Use the API in CI or runtime gates so decisions are based on the latest scan.
Learn more in threat detection docs, how scoring works, and the API overview.
Assessments are automated and may contain errors. Findings are risk indicators, not confirmed threats. This is a point-in-time assessment; security posture can change.
integrate brin in minutes — one GET request is all it takes. query the api, browse the registry, or download the full dataset.