Web threats / ClickFix

TestnetTail ClickFix kit

TestnetTail is a website loader that resolves its HTML source through a BNB Smart Chain testnet contract. We have matched it on 5 sites since 19 August.

TestnetTail in numbers

Since 19 August, the first TestnetTail match in our records, counted on 12 November 2026. How we count.

Sites with TestnetTail code5
Sites with a match in the last 30 days1
New sites in October0

A loader inside a data URI

TestnetTail is a loader that arrives in the infected page as a script whose source starts data:text/javascript;base64,. Decoding that value produces the complete loader. The browser does not request a JavaScript file from the attacker, so the page source is the place to find it.

Our September copies came from WordPress page HTML. A later build grew and changed its obfuscation and variable names. Both builds use the same contract, selector, cookie and HTML insertion flow.

The contract supplies the host

The loader sends a JSON-RPC eth_call to BNB Smart Chain testnet with selector 0x6d4ce63c. It converts the hexadecimal reply to a byte array, reads the ABI offset and string length, then turns the following bytes into a hostname with String.fromCharCode.

The infected site keeps the contract address. Changing the string in that contract moves the source of the HTML without another edit to the site.

The response becomes page markup

Before making either request, the loader checks for cookie-captcha-complete. A visitor with that cookie skips the loader.

Everyone else follows this path:

  1. The browser asks the contract for the current hostname.
  2. It fetches https://<hostname> as text.
  3. A non-empty response is appended to the end of the infected page with insertAdjacentHTML("beforeend", ...).
  4. An empty response sets cookie-captcha-complete=1 for one year.

The cookie lets the operator stop showing the inserted page to a browser after an empty reply.

What we see

MonthNew sites
September2
October0
November so far0

Checking a site

Search the server-delivered HTML for a data:text/javascript;base64, script. Decode the value offline and look for this combination:

  • an eth_call using selector 0x6d4ce63c
  • a request to a BNB Smart Chain testnet RPC service
  • manual ABI string decoding with Uint8Array, slice and String.fromCharCode
  • cookie-captcha-complete beside insertAdjacentHTML("beforeend", ...)

Check the browser's cookies and network log as well. Remove the injected script, purge page and CDN caches, then clear the completion cookie before testing again.

Contracts we read

We read 1 TestnetTail contract every day.

ChainContractCurrent destinationsLast changed
BNB Smart Chain testnet0x5dE54CEAE7Aa7d0D9C333B272669E6912d093677qiuy[.]org

The EtherHiding contract tracker keeps the full destination history.

Try the feed for 14 days.

Request a trial and we'll send you a live API key, with the same feed, removals and reasons a customer gets.