Web threats / Affiliate fraud

HotejMain affiliate fraud kit

HotejMain is an injected traffic-routing kit that reconstructs a keyed click-stage address from a controller's reply. We have matched it on 64 sites since 10 August.

HotejMain in numbers

Since 10 August, the first HotejMain match in our records, counted on 13 October 2026. How we count.

Sites with HotejMain code64
Sites with a match in the last 30 days44
New sites in October so far26
Still serving it when recaptured at least 25 days later11 of 14 sites (79%)
Sites captured since 25 September38

A campaign name in the redirect chain

Dawid Rycerz's WordPress incident report names HotejMain as the campaign in a traffic-hijacking redirect chain. Our retained website code shows the injected bootstrap that retrieves routing state and constructs a keyed script address.

Routing state becomes a click-stage script

HotejMain's loader sits in website HTML. It hides strings and control flow behind lookup tables, arithmetic and split names, then makes a synchronous XMLHttpRequest to retrieve routing text.

The keyed-click builds check that reply for an oo delimiter. They split the reply into fields, reconstruct a destination host and add a /click?key= route with the configured campaign key. The loader creates a script element for the resulting address and appends it to the page.

The code appears in several forms. One uses httpGet and appa; another uses the script id sggtp with gtg and alpappa. The bewels injection uses gtg and kppa with the same keyed route construction. The ftt build carries var ftt=0 and uses httpGet and appa to retrieve routing state and add the next script.

What we see

MonthNew sites
September21
October so far26

Among successful captures since 25 September, 18 of 38 HotejMain sites ran WordPress, and 17 made requests for Joomla core paths.

Of the 14 sites recaptured at least 25 days after their first match, 11 still served HotejMain (79%).

Checking a site

Inspect page source, rendered script elements and theme or plugin JavaScript. Look for:

  • unfamiliar scripts with the ids sggtp or bewels
  • var ftt=0 beside an obfuscated loader
  • synchronous XHR inside functions named httpGet or gtg
  • routing text split on oo
  • a reconstructed /click?key= script address
  • functions named appa, alpappa or kppa that add a remote script

Remove the injected loaders and cached copies. Compare templates, themes and plugins with trusted releases, review administrator and hosting access and rotate those credentials.