Blog 24/7
ARK. B06Parametr monitoringuBezpieczeństwo · lista 87 parametrów

Wstrzyknięty skrypt

ważność krytycznamierzonysposób infection

Złośliwy JavaScript wstrzyknięty w HTML strony: zaciemniony kod (base64 i eval), loader z własnej domeny, bramka SocGholish, kod pobierany z blockchaina (EtherHiding). Skutek włamania widoczny z zewnątrz.

Do 2026-10-01 „Malware / infekcja” z 10 typami; cloaking i spam przeszły do B35, obce elementy do B36, skan nierozstrzygnięty do B48.

ARK. 1

WIKI

artykuł z 16.09.2026 · źródeł 12

Malware / infekcja (ang. hacked content, website malware) — parametr monitoringu stron WordPress opisujący skutki włamania widoczne z zewnątrz, w treści odpowiedzi HTTP: wstrzyknięty lub zaciemniony JavaScript, ukryte ramki iframe, spam SEO, przekierowania i cloaking. Google definiuje treść zhakowaną jako każdą treść umieszczoną w witrynie bez zgody właściciela wskutek luk w jej zabezpieczeniach i wyróżnia cztery jej postacie: wstrzyknięcie kodu, wstrzyknięcie stron, wstrzyknięcie treści oraz przekierowania.[1]

Jak działa

Wstrzyknięty JavaScript. Wstrzyknięcie kodu ma najczęściej postać złośliwego JavaScriptu dodanego bezpośrednio do strony albo do ramek iframe.[1] Typowe ślady to element script ładujący plik z serwera napastnika oraz iframe o zerowej wysokości i szerokości ze stylem display:none, niewidoczny dla odwiedzającego.[2] Kod bywa zaciemniany, np. konstrukcją eval(atob(...)), w której eval parsuje przekazany argument i wykonuje go jako JavaScript — MDN zalicza tę funkcję do tzw. injection sinks.[4] Taki zapis ukrywa właściwą treść skryptu przed pobieżnym przeglądem kodu źródłowego strony.

Spam SEO. Wstrzyknięcie treści polega na dodaniu do istniejących stron ukrytych linków lub ukrytego tekstu, a wstrzyknięcie stron — na tworzeniu nowych podstron ze spamem.[1] W odmianie znanej jako „Japanese keyword hack” powstają automatycznie generowane strony z japońskim tekstem w katalogach o losowych nazwach, zarabiające na linkach partnerskich do sklepów z podróbkami markowych towarów; napastnik często dopisuje się też jako właściciel witryny w Google Search Console.[7]

Cloaking. Cloaking to pokazywanie wyszukiwarkom innej treści niż użytkownikom w celu manipulowania rankingiem; Google podaje przykład strony o podróżach wyświetlanej wyszukiwarce i strony z tanimi lekami wyświetlanej ludziom.[1] Wstrzyknięty kod rozpoznaje robota po nagłówku User-Agent. W przypadku opisanym przez Sucuri w styczniu 2026 roku skrypt porównywał go z listą robotów (Googlebot, Bingbot, Baiduspider): człowiek otrzymywał zwykłą stronę, robot — reklamy hazardowe.[6] Pokrewne warianty uzależniają przekierowanie od User-Agent, pory dnia lub strony odsyłającej, a część złośliwego kodu uaktywnia się wyłącznie przy wejściu z wyników wyszukiwania Google.[2]

RYS. 1.1Cloaking: dwie odpowiedzi pod jednym adresem

Z zewnątrz obserwowalny jest środkowy odcinek łańcucha infekcji: kod zapisany w plikach lub bazie danych trafia do HTML-a, a stamtąd uruchamia przekierowanie albo ładunek w przeglądarce odwiedzającego.[12]

RYS. 1.2Łańcuch infekcji widocznej z zewnątrz

Standardy i specyfikacje

Punktem odniesienia są dokumenty wyszukiwarki Google, dokumentacja platformy webowej i zalecenia organizacji branżowych.

  • Zasady Google dotyczące spamu definiują cloaking, treść zhakowaną oraz ukryty tekst i linki, np. biały tekst na białym tle albo czcionkę o rozmiarze lub przezroczystości 0.[1]
  • Google Safe Browsing pozwala aplikacjom sprawdzać adresy URL na stale aktualizowanych listach niebezpiecznych zasobów: stron socjotechnicznych (phishing), stron z malware i z oprogramowaniem niechcianym. API Safe Browsing jest przeznaczone wyłącznie do użytku niekomercyjnego; do zastosowań komercyjnych Google wskazuje Web Risk API.[8]
  • Raport „Problemy dotyczące bezpieczeństwa” w Google Search Console rozróżnia treść zhakowaną (wstrzyknięcie kodu, treści i adresów URL), malware i oprogramowanie niechciane oraz socjotechnikę.[3]
  • MDN opisuje eval jako punkt wstrzyknięcia podatny na XSS i jako ograniczenie ryzyka wskazuje przekazywanie obiektów TrustedScript z wymuszeniem Trusted Types.[4]
  • OWASP w zestawieniu „Third Party JavaScript Management Cheat Sheet” opisuje tagi marketingowe i analityczne jako niewielkie fragmenty JavaScriptu, które wykonują się z pełnymi uprawnieniami strony, i zaleca m.in. Subresource Integrity.[9]

Zagrożenia i skutki

Strony, u których Google stwierdzi problem bezpieczeństwa, mogą otrzymać etykietę ostrzegawczą w wynikach wyszukiwania albo pełnoekranowe ostrzeżenie w przeglądarce.[3] Odwiedzający stają się celem dalszych ataków: SocGholish wyświetla okno udające komunikat przeglądarki o konieczności aktualizacji, które prowadzi do pobrania malware GhoLoader,[11] a technika ClickFix nakłania ofiarę do samodzielnego uruchomienia złośliwego polecenia w oknie „Uruchom” systemu Windows.[12]

Granice obserwacji z zewnątrz. Napastnicy serwują złośliwą treść tylko wybranym agentom lub odwiedzającym z określonych stron odsyłających, aby uniknąć wykrycia przez właścicieli i skanery.[2] Znaczna część infekcji w ogóle nie trafia do HTML-a: DollyWay tworzy konta administratorów o losowych szesnastkowych nazwach i przy każdym wczytaniu strony ponownie wstrzykuje kod do wszystkich aktywnych wtyczek,[10] SocGholish instaluje fałszywe wtyczki CMS działające jako backdoory,[11] a napastnik „Japanese keyword hack” dodaje się do właścicieli witryny w Search Console.[7] Złośliwe zadania cron potrafią ponownie zainfekować witrynę w ciągu kilku minut nawet po przywróceniu plików i bazy z czystej kopii, a skanowanie plików ani bazy danych ich nie obejmuje.[5] Obserwacja odpowiedzi HTTP wykrywa więc skutek, lecz nie potwierdza braku takich elementów.

Obce skrypty. Skrypt z cudzej domeny nie jest sam w sobie oznaką infekcji — tagi analityczne i marketingowe są standardowym elementem stron.[9] Zarazem pochodzenie z własnej domeny nie świadczy o czystości: DollyWay dołącza skrypt funkcją wp_enqueue_script pod adresem samej zainfekowanej witryny, w postaci /? z 32-znakowym skrótem MD5 i parametrem ver.[10]

Przykłady

KampaniaLataMechanizmSkala
DollyWay World Dominationod 2016, opis 2025[10]skrypt ładowany z domeny ofiary, ruch do sieci VexTrio/LosPollos[10]ponad 20 000 stron w 8 lat, ok. 10 mln wyświetleń miesięcznie[10]
SocGholish (TA569) z TDS TA2726opis 2026[11]zaciemniony JS z fałszywych wtyczek; złośliwy Keitaro TA2726 kieruje ruch wg profilu i kraju; fałszywa aktualizacja przeglądarki[11]14 971 stron oczyszczonych i ponad 100 serwerów oraz domen wyłączonych w Operation Endgame[11]
UNC5142: EtherHiding i ClickFix2025[12]JS w plikach wtyczek, motywu lub w bazie; konfiguracja pobierana z kontraktów BNB Smart Chain[12]ok. 14 000 stron z wstrzykniętym kodem (czerwiec 2025)[12]
Japanese keyword hack—generowane strony w losowych katalogach, cloaking, reguły .htaccess[7]brak danych

DollyWay wiąże się z kampaniami działającymi od 2016 roku; GoDaddy opisał ją w marcu 2025 roku jako operację, która w ciągu ośmiu lat zainfekowała ponad 20 000 witryn.[10] SocGholish korzysta z usługi TDS prowadzonej przez TA2726, dystrybuującej ładunki w zależności od profilu i położenia odwiedzającego; w czerwcu 2026 roku operacja Endgame wyłączyła ponad 100 serwerów i domen.[11]

EtherHiding to technika ukrywania złośliwego kodu lub danych w publicznym blockchainie, np. BNB Smart Chain. Wstrzyknięty skrypt CLEARSHORT łączy się z siecią przez publiczny węzeł RPC za pomocą biblioteki Web3.js. Zmiana adresu przynęty lub klucza w kontrakcie kosztuje od 0,25 do 1,50 USD opłat sieciowych, a niezmienność blockchaina utrudnia przejęcie i wyłączenie infrastruktury.[12]

TAB. 1.1Przypisy12
  1. [1] Spam policies for Google web search · Google for Developers (Search Central)
  2. [2] Hacked with malware · Google (web.dev)
  3. [3] Security issues report · Google Search Console Help
  4. [4] eval() · MDN Web Docs
  5. [5] Attackers Abuse Cron Jobs to Reinfect Websites · Sucuri
  6. [6] Google Sees Spam, You See Your Site: A Cloaked SEO Spam Attack · Sucuri
  7. [7] Fix the Japanese keyword hack · Google (web.dev)
  8. [8] Safe Browsing — Overview · Google for Developers
  9. [9] Third Party JavaScript Management Cheat Sheet · OWASP
  10. [10] DollyWay World Domination: Eight Years of Evolving Website Malware Campaigns · GoDaddy
  11. [11] Sayonara, SocGholish: Operation Endgame Disrupts Major Cybercrime Operation · Proofpoint
  12. [12] New Group on the Block: UNC5142 Leverages EtherHiding to Distribute Malware · Google Threat Intelligence Group
ARK. 2

STATS

wyniki z systemu · tylko liczby zbiorcze
TAB. 2.1Odczyty per strona—

Ten parametr nie zapisuje odczytu per strona — przebieg zostawia tylko ustalenia, więc liczby sprawdzonych stron i wyników „ok” system nie ma. Pojawią się po wdrożeniu zapisu przebiegów per strona per parametr.

TAB. 2.3Ustalenia—

Ten parametr nie otworzył jeszcze żadnego ustalenia w bazie LAB247. Pusto nie znaczy „czysto” — znaczy, że nic nie przekroczyło reguły.

TAB. 2.4Przebiegi z tym sposobem sprawdzeniaod 09.09.2026
Przebiegów
65sposób infection
W 30 dni
0przebiegów
Ostatni
19.09.2026start przebiegu
Stron w przebiegach
—65 przebiegów bez liczby stron
ARK. 3

CARD

karta z kodu CREATO_PING, odczyt 01.10.2026

Jak ten parametr trafia do ClickUpa: wynik sondy to linia w subtasku 2. Pomiar, a usterka, którą otwiera — linia w subtasku 1. Podsumowanie (z identyfikatorem CWE i kategorią OWASP), skąd liczy się wskaźnik zagrożenia i status strony. Projekcja z bazy skanera odświeża oba subtaski co godzinę. Do 22.09 każde ustalenie dostawało własny subtask i status ze starego słownika (PODATNA, WARNING…) — te słowa zostały jeszcze w części opisów pomiaru niżej jako język wewnętrzny sond.

RYS. 3.1Droga parametru przez system: Wstrzyknięty skrypt
TAB. 3.1Pomiarpliki: 12
Obszar i ważnośćBezpieczeństwo · krytyczna (B06)
Workflow i częstotliwośćcreato_ping_security_v2 · P4 działa na LAB247Skaner 2.0, rytm „p4”: co 24 h (tier 1–3), co 48 h (tier 4) · Szybki skan: tylko ewidentne przejęcie widoczne z zewnątrz.creato_ping_security_v2 · P3 działa na LAB247Skaner 2.0, rytm „p3” / „bezpieczenstwo”: premium co 6 h, reszta co 24 h (tier 1–3), co 9 dni (tier 4) · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu.
Sonda i helpersposób infection · CREATO_PING/helpers/infection_check.py
Testy
  1. Gdzie chodzi: rytm p4 (dostęp i priorytet T1–T3 co 24 h, T4 co 48 h; bez priorytetu co 48 h), rytm p3 (premium co 6 h; dostęp i priorytet T1–T3 co 24 h, T4 co 9 dni; bez priorytetu co 9 dni) i badanie kohort — tura „co_to_za_strona” zestawów premium_pelny, tani_ciezki i tani_lekki, gdy sonda http dała ok.
  2. HTML strony głównej z pobrania dla człowieka (wspólny bufor przebiegu; limit 5 s, do 5 przekierowań, treść do 3 MB). Nieudane pobranie = żadna reguła nie rusza, zostaje ustalenie parametru Skan infekcji nierozstrzygnięty.
  3. Zaciemniony kod: eval albo Function, w nawiasie atob z literałem base64 o długości co najmniej 40 znaków (infection_check.py:93–96).
  4. Loader DollyWay: znacznik script ze src z własnej domeny (albo ścieżki względnej) pod /?<32 znaki hex>&ver=<wersja>; WordPress nigdy tak nie podłącza skryptów.
  5. SocGholish: jeden z 6 znaczników JS (PH_PARAM_DIAG, continueWithGatewayRequest, eval(atob(filter.template))…) albo trasa /wp-json/<słowo>-<słowo>-<5–12 znaków>/v1/<5–12 znaków> z cyfrą w jednym z dwóch członów; w dowodzie do 6 trafień.
  6. EtherHiding: w tym samym HTML adres RPC blockchaina (bsc-dataseed…binance.org, polygon-rpc.com, eth_call) ORAZ ślad zaciemnienia (new Function(, new Web3(, stateMutability…).
  7. Ta sama sonda niesie kanał Safe Browsing (infection_safe_browsing, karta Google Safe Browsing) i reguły parametrów Cloaking i spam SEO, Obce skrypty i ukryte ramki oraz Skan infekcji nierozstrzygnięty.
Typ wyniku0–4 ustalenia, każde osobnym typem: infection_base64_eval, infection_same_origin_loader, infection_socgholish_gateway, infection_etherhiding; w dowodzie dopasowane fragmenty
Jednostkabrak — wynik jakościowy
Próg i regułaReguły, nie progi: dowolne dopasowanie wzorca = ustalenie o powadze pilnej (helper i polityka zgodnie). Jedyna liczba: literał base64 ≥ 40 znaków.
Gdzie leżą pokrętłaCREATO_PING/helpers/infection_check.py → _BASE64_EVAL, _SAME_ORIGIN_LOADER, _SOCGHOLISH_ANCHORS, _SOCGHOLISH_ROUTE, _ETHERHIDING_RPC, _ETHERHIDING_OBFCREATO_PING/helpers/html_fetch.py → MAX_BODY_BYTESCREATO_PING/config/incident_policy.toml → [finding] infection_base64_eval, infection_same_origin_loader, infection_socgholish_gateway, infection_etherhiding
Retencja odczytówSurowy pomiar jako NIEZMIENNY wiersz tabeli `odczyty` w bazie skanera (wejście, wyjście, dowody, sha karty sondy i helpera, commit kodu) — trigger odrzuca każdą zmianę. Okno retencji z kohorty: 90 dni premium, 30 dni reszta; poza oknem zostają odczyty z werdyktem problemu, akcją albo etykietą, bo replay reguł ich potrzebuje (`skaner/retencja.py`). Do LAB247 ten kanał nie idzie (do bazy serwisu jadą dziś tylko sprawdzenia dostępności), więc poza odczytem zostaje werdykt w tabeli `werdykty` i sprawa w tabeli `sprawy`.
Znane rozbieżności
  1. Badany jest tylko HTML strony głównej: zewnętrzne pliki JS, podstrony i kod dokładany przez JavaScript po załadowaniu nie są sprawdzane.
  2. Pobranie bez nagłówka Referer i bez ciasteczek, zawsze z tego samego adresu: wstrzyknięcia pokazywane tylko gościom z wyszukiwarki albo raz na adres IP mogą się sondzie nie pokazać.
  3. Zaciemnienie rozpoznawane jednym wzorcem: eval(String.fromCharCode(…)), atob przez zmienną, sekwencje szesnastkowe albo unescape nie dają ustalenia.
kandydaci do pętli: kod a opis parametru albo specyfikacja
Karta przepisana zCREATO_PING/helpers/infection_check.py · CREATO_PING/helpers/html_fetch.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/helpers/security_testy.py · CREATO_PING/skaner/kohorty.toml · CREATO_PING/skaner/scenariusze/premium_pelny.toml · CREATO_PING/skaner/scenariusze/tani_ciezki.toml · CREATO_PING/skaner/scenariusze/tani_lekki.toml · CREATO_PING/config/incident_policy.toml · CREATO_PING/skaner/cykl.py · CREATO_PING/skaner/usterki.toml · CREATO_PING/skaner/ocena.py · odczyt 01.10.2026
TAB. 3.2Co oznacza failtypów Findingów: 4

infection_base64_eval: bramka polityki otwarta (gate=true) → sprawa w skanerze → Zaciemniony skrypt w treści strony (wstrzyknięcie) — waga 5 → ocena 9–10 (czerwony), status strony „krytyczny”, dopóki sprawa jest otwarta. infection_same_origin_loader: bramka polityki otwarta (gate=true) → sprawa w skanerze → Loader złośliwego kodu z własnej domeny — waga 5 → ocena 9–10 (czerwony), status strony „krytyczny”, dopóki sprawa jest otwarta. infection_socgholish_gateway: bramka polityki otwarta (gate=true) → sprawa w skanerze → Brama kampanii SocGholish w API strony — waga 5 → ocena 9–10 (czerwony), status strony „krytyczny”, dopóki sprawa jest otwarta. infection_etherhiding: bramka polityki otwarta (gate=true) → sprawa w skanerze → Ładunek pobierany z blockchaina (ClickFix) — waga 5 → ocena 9–10 (czerwony), status strony „krytyczny”, dopóki sprawa jest otwarta. Trzy sygnatury kampanii mają w katalogu usterek znacznik incydentu (incydent=true, kryterium właściciela z 30.09): założenie sprawy ogłasza incydent i uruchamia pomiar MTTD/MTTR (`skaner/cykl.py`). Zaciemniony skrypt waży tyle samo, ale incydentu sam nie ogłasza — bywa legalnym kodem. Sprawy zakłada rytm; w badaniu droga kończy się na usterce przebiegu i wskaźniku badania.

KodFindingSeverityPewnośćSkutekFinding / alarmWaga → ocenaCo zrobić
B06.01Zaciemniony kod JSinfection_base64_evalKrytycznaEwidentneprzejęcie stronytak / takwaga 5 → ocena 9–10 (czerwony)Przywróć czystą kopię plików, zmień hasła, zaktualizuj wszystko.
B06.02Loader z własnej domeny (DollyWay)infection_same_origin_loaderKrytycznaEwidentneprzejęcie stronytak / takwaga 5 → ocena 9–10 (czerwony)Przywróć czystą kopię plików i bazy, zmień hasła, sprawdź konta administratorów.
B06.03Bramka SocGholishinfection_socgholish_gatewayKrytycznaEwidentneprzejęcie stronytak / takwaga 5 → ocena 9–10 (czerwony)Przywróć czystą kopię, usuń nieznane wtyczki i zadania cykliczne, zmień hasła.
B06.04Payload z blockchaina (EtherHiding)infection_etherhidingKrytycznaEwidentneprzejęcie stronytak / takwaga 5 → ocena 9–10 (czerwony)Usuń wstrzyknięty kod z motywu i bazy, zmień hasła, zaktualizuj wszystko.
TAB. 3.3B06.01 · Zaciemniony kod JSwersja 1 · 01.10.2026
Kod i kluczB06.01 · infection_base64_eval · w tabeli typów
Co znaczyW HTML wykryto eval(atob(...)) — klasyczny web-shell lub wstrzyknięty skrypt.
Kiedy powstajeHTML strony głównej (UA monitora) pasuje do regexu (case-insensitive) (?:eval|Function)\s*\(\s*atob\s*\(\s*['"][A-Za-z0-9+/=]{40,}['"]\s*\) — czyli eval(/Function( + atob( z literałem base64 o długości ≥ 40 znaków.Regex: infection_check.py:93. Wejście wspólne dla infection_*: GET {scheme}://{domena}/ (follow_redirects, max 5, cap 3 MB, timeout http 5 s, connect 5 s) z UA „CREATO_PING/1.0 (+monitoring; contact: tomek@creato.pl)”; przy 403/406/415/429/451 jedna powtórka z nagłówkami przeglądarki. Heurystyki działają tylko, gdy ten fetch ma status_code < 400 (html_fetch.py:206). Uruchamiane na poziomie p3 i p4.
Severity · pewnośćKrytyczna · Ewidentne
Skutek dla stronyprzejęcie strony · zakłada Finding · alarm tak
Waga → ocenawaga 5 → ocena 9–10 (czerwony)
KlasyfikacjaCWE: CWE-506 (Embedded Malicious Code)OWASP Top 10:2025: A08:2025 Software or Data Integrity FailuresMITRE ATT&CK 19.2: T1608.004 Stage Capabilities: Drive-by Target (ślad)OCSF 1.9.0: Detection Finding (class_uid 2004)
Rekord OCSFfinding_info.analytic.uid = "B06.01" · analytic.name = "infection_base64_eval" · finding_info.types = ["B06 Wstrzyknięty skrypt"]
Co zrobićPrzywróć czystą kopię plików, zmień hasła, zaktualizuj wszystko.
Wersje typu
  1. v1 · 01.10.2026 — kod B06.01 nadany (finding-codes.ts)
TAB. 3.4B06.02 · Loader z własnej domeny (DollyWay)wersja 1 · 01.10.2026
Kod i kluczB06.02 · infection_same_origin_loader · w tabeli typów
Co znaczySkrypt ładowany z domeny samej strony pod adresem /?<hash> — WordPress nigdy tak nie podłącza skryptów.
Kiedy powstajeHTML zawiera tag pasujący do regexu (case-insensitive) <script[^>]+src=['"](?:(?:https?:)?//[^/'"]+)?/\?[0-9a-f]{32}&(?:amp;)?ver=[0-9.]+['"] — skrypt ładowany pod /?<32 znaki hex>&ver=<cyfry/kropki> (host dowolny lub względny; wzorzec DollyWay).Regex: infection_check.py:106. Wejście wspólne dla infection_*: GET {scheme}://{domena}/ (follow_redirects, max 5, cap 3 MB, timeout http 5 s, connect 5 s) z UA „CREATO_PING/1.0 (+monitoring; contact: tomek@creato.pl)”; przy 403/406/415/429/451 jedna powtórka z nagłówkami przeglądarki. Heurystyki działają tylko, gdy ten fetch ma status_code < 400 (html_fetch.py:206). Uruchamiane na poziomie p3 i p4.
Severity · pewnośćKrytyczna · Ewidentne
Skutek dla stronyprzejęcie strony · zakłada Finding · alarm tak
Waga → ocenawaga 5 → ocena 9–10 (czerwony)
KlasyfikacjaCWE: CWE-506 (Embedded Malicious Code)OWASP Top 10:2025: A08:2025 Software or Data Integrity FailuresMITRE ATT&CK 19.2: T1608.004 Stage Capabilities: Drive-by Target (ślad)OCSF 1.9.0: Detection Finding (class_uid 2004)
Rekord OCSFfinding_info.analytic.uid = "B06.02" · analytic.name = "infection_same_origin_loader" · finding_info.types = ["B06 Wstrzyknięty skrypt"]
Co zrobićPrzywróć czystą kopię plików i bazy, zmień hasła, sprawdź konta administratorów.
Wersje typu
  1. v1 · 01.10.2026 — kod B06.02 nadany (finding-codes.ts)
TAB. 3.5B06.03 · Bramka SocGholishwersja 1 · 01.10.2026
Kod i kluczB06.03 · infection_socgholish_gateway · w tabeli typów
Co znaczyŚlad bramki REST kampanii SocGholish (fałszywe aktualizacje przeglądarki) w HTML strony.
Kiedy powstajeHTML zawiera dosłownie (case-sensitive) którykolwiek z anchorów: PH_PARAM_DIAG, PH_FUNC_DO_REQUEST, PH_VAR_FILTER_DATA, continueWithGatewayRequest, eval(atob(filter.template)), wpgq_tds_fail; LUB dopasowanie regexu /wp-json/[a-z]+-[a-z]+-([a-z0-9]{5,12})/v1/([a-z0-9]{5,12})\b (case-insensitive), w którym sufiks namespace'u lub endpoint zawiera co najmniej jedną cyfrę.Anchory: :111, regex trasy: :118, filtr cyfry: :216. Wejście wspólne dla infection_*: GET {scheme}://{domena}/ (follow_redirects, max 5, cap 3 MB, timeout http 5 s, connect 5 s) z UA „CREATO_PING/1.0 (+monitoring; contact: tomek@creato.pl)”; przy 403/406/415/429/451 jedna powtórka z nagłówkami przeglądarki. Heurystyki działają tylko, gdy ten fetch ma status_code < 400 (html_fetch.py:206). Uruchamiane na poziomie p3 i p4.
Severity · pewnośćKrytyczna · Ewidentne
Skutek dla stronyprzejęcie strony · zakłada Finding · alarm tak
Waga → ocenawaga 5 → ocena 9–10 (czerwony)
KlasyfikacjaCWE: CWE-506 (Embedded Malicious Code)OWASP Top 10:2025: A08:2025 Software or Data Integrity FailuresMITRE ATT&CK 19.2: T1608.004 Stage Capabilities: Drive-by Target (ślad)OCSF 1.9.0: Detection Finding (class_uid 2004)
Rekord OCSFfinding_info.analytic.uid = "B06.03" · analytic.name = "infection_socgholish_gateway" · finding_info.types = ["B06 Wstrzyknięty skrypt"]
Co zrobićPrzywróć czystą kopię, usuń nieznane wtyczki i zadania cykliczne, zmień hasła.
Wersje typu
  1. v1 · 01.10.2026 — kod B06.03 nadany (finding-codes.ts)
TAB. 3.6B06.04 · Payload z blockchaina (EtherHiding)wersja 1 · 01.10.2026
Kod i kluczB06.04 · infection_etherhiding · w tabeli typów
Co znaczyStrona pobiera kod z węzłów blockchaina i uruchamia go przez new Function — schemat kampanii ClickFix/EtherHiding.
Kiedy powstajeHTML zawiera JEDNOCZEŚNIE trafienie RPC (bsc-dataseed\d*\.binance\.org|polygon-rpc\.com|\beth_call\b) i trafienie obfuskacji (stateMutability|orchidABI|merlionAddress|tokyoSkytree|new\s+Function\s*\(|new\s+Web3\s*\(), oba case-insensitive.Regexy: infection_check.py:124–128. Wejście wspólne dla infection_*: GET {scheme}://{domena}/ (follow_redirects, max 5, cap 3 MB, timeout http 5 s, connect 5 s) z UA „CREATO_PING/1.0 (+monitoring; contact: tomek@creato.pl)”; przy 403/406/415/429/451 jedna powtórka z nagłówkami przeglądarki. Heurystyki działają tylko, gdy ten fetch ma status_code < 400 (html_fetch.py:206). Uruchamiane na poziomie p3 i p4.
Severity · pewnośćKrytyczna · Ewidentne
Skutek dla stronyprzejęcie strony · zakłada Finding · alarm tak
Waga → ocenawaga 5 → ocena 9–10 (czerwony)
KlasyfikacjaCWE: CWE-506 (Embedded Malicious Code)OWASP Top 10:2025: A08:2025 Software or Data Integrity FailuresMITRE ATT&CK 19.2: T1608.004 Stage Capabilities: Drive-by Target (ślad)OCSF 1.9.0: Detection Finding (class_uid 2004)
Rekord OCSFfinding_info.analytic.uid = "B06.04" · analytic.name = "infection_etherhiding" · finding_info.types = ["B06 Wstrzyknięty skrypt"]
Co zrobićUsuń wstrzyknięty kod z motywu i bazy, zmień hasła, zaktualizuj wszystko.
Wersje typu
  1. v1 · 01.10.2026 — kod B06.04 nadany (finding-codes.ts)
ARK. 4

LOOP

pętli: 7
RYS. 4.1Pętla parametru — sześć etapów
TAB. 4.1Trafność, 30 dnialarmy · prawdziwe · fałszywe · bez rozstrzygnięcia

Trafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.

TAB. 4.2Pętle7 · zmian: 9 · wpływających na cały system: 4
Obce skrypty i ukryte iframe przestają oznaczać infekcjęzamknięta historyczna 2026-07-15

Sygnał: Seria fałszywych alarmów „zainfekowana” na legalnych integracjach: płatności, marketing, widgety, GTM, piksel, czat.

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręcznieczłowiek rozpoznał integracje jako legalne
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionedwie reguły obniżone do sygnału niepewnego
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-07-15infection_foreign_script i infection_hidden_iframe: z „wysokie / zainfekowana” na „niskie / do weryfikacji”, bez alarmu.config/incident_policy.toml · helpers/incident_policy.pyW praktyce obcy skrypt to prawie zawsze PayU, Klaviyo, Elfsight, ShareThis; ukryty iframe to GTM, piksel albo czat.cały system W tym samym wydaniu powstała polityka incydentów z dwiema osiami — powaga i pewność — dla wszystkich ustaleń bezpieczeństwa. Od tej zmiany każdy nowy typ ustalenia deklaruje, jak jest pewny.d59385ebez replayuzatwierdził: właściciel, 2026-07-11 (cała tabela polityki)
System rezerwacji wizyt na liście zaufanych skryptówzamknięta historyczna 2026-08-13

Sygnał: Fałszywy sygnał obcego skryptu na stronie lecznicy weterynaryjnej.

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręcznieskrypt rozpoznany jako SaaS rezerwacji wizyt
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionejeden wpis na liście zaufanych domen
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-08-13Domena systemu rezerwacji wizyt dopisana do SCRIPT_WHITELIST.helpers/infection_check.pyLegalna integracja klienta, nie wstrzyknięty skrypt.tylko ten parametr8aa6d77bez replayubez zapisu zatwierdzenia
Blokada antybotowa to nie cloakingzamknięta historyczna 2026-08-14

Sygnał: Strona z regułą blokowania niezweryfikowanych Googlebotów dostawała co noc „cloaking” (powaga pilna): sonda pyta z UA Googlebota spoza adresów Google, więc dostaje pustkę.

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręczniezabezpieczenie strony uznane za poprawne działanie, nie incydent
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobioneosobne ustalenie bez subtaska
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-08-14detect_cloaking rozróżnia cloaking (inna treść) od blokady (pusta odpowiedź); nowe ustalenie bot_protection_detected.helpers/infection_check.pyCloaking podaje inną treść, nie żadną — brak dokumentu to podpis odcięcia żądania.tylko ten parametrf43e973bez replayubez zapisu zatwierdzenia
2026-08-14bot_protection_detected: gate=false — sama statystyka, bez subtaska.config/incident_policy.tomlBez tego ustawienia domyślne założyłyby subtask „do weryfikacji” co noc.tylko ten parametr0f2826bbez replayubez zapisu zatwierdzenia
Kampanie 2025–26 i „nie sprawdzono ≠ czysto”zamknięta historyczna 2026-09-05

Sygnał: Research kampanii: DollyWay, SocGholish i EtherHiding ładują kod z domeny ofiary albo z blockchaina, więc filtr „obcy host” ich nie widzi. Przypadek źródłowy: wielomiesięczna niewykryta infekcja typu DollyWay. · dotyczy też: Google Safe Browsing

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręcznieluka reguły potwierdzona na znanym przypadku
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionetrzy sygnatury, ustalenie „nie sprawdzono”, Web Risk
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-09-05Trzy sygnatury kampanii jako sygnały pewne: loader z własnej domeny pod /?<hash>, bramka REST SocGholish, payload z blockchaina.helpers/infection_check.py · config/incident_policy.tomlKampanie omijają logikę obcego hosta; WordPress nigdy nie podłącza skryptu pod /?<hash>.tylko ten parametrb0fc77cbez replayubez zapisu zatwierdzenia
2026-09-05Nieudane pobranie strony głównej daje infection_scan_unknown (tylko statystyka) zamiast pustej listy.helpers/infection_check.py · config/incident_policy.tomlPusta lista ustaleń po 403 z WAF-a czytała się jak „czysto”, choć heurystyki w ogóle się nie wykonały.cały system Zasada „nie dało się sprawdzić” jako trzeci stan weszła do polityki i do cotygodniowego zestawienia; ten sam podział obowiązuje dziś w statystykach wszystkich parametrów.b0fc77cbez replayubez zapisu zatwierdzenia
2026-09-05Zbiorczy odczyt reputacji używa Web Risk, gdy na serwerze jest klucz; bez klucza zostaje Safe Browsing v4 (klucz Web Risk w runbooku: do zrobienia).helpers/safebrowsing.pySafe Browsing v4 jest wycofywany i licencyjnie niekomercyjny.cały system Dotyczy też parametru Google Safe Browsing — to ten sam kanał reputacji.b0fc77cbez replayubez zapisu zatwierdzenia
Pętla 1: trafność rodziny „infekcja”zaplanowana pętla 1 2026-11

Sygnał: Pierwszy parametr pętli 1 (plan projektu LAB247, cel C4): najwięcej sygnałów niepewnych i najdroższa pomyłka w obie strony.

  1. 1. Zbiórkaczekazapis przebiegów per strona per parametr
  2. 2. Werdyktczekawerdykt przy każdym zamknięciu subtaska
  3. 3. Miaraczekacztery liczby tygodniowo
  4. 4. Kartaczekapróg i wyjątki z datą ostatniej zmiany
  5. 5. Zmianaczekajedna zmiana naraz, z kryterium cofnięcia
  6. 6. Replayczekareguła po zapisanych odczytach przed utrwaleniem

Pętla jeszcze nie wprowadziła żadnej zmiany.

Strona główna przekierowana na cudzy serwis to nie cloakingzamknięta historyczna 2026-09-16

Sygnał: Strona klienta przekierowywała stronę główną na profil w serwisie społecznościowym — porównanie treści dla człowieka i Googlebota badało cudzy serwis, który sam podaje botom inną treść.

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręcznieczłowiek rozpoznał, że porównanie dotyczy cudzego serwisu
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionecloaking pomijany przy cudzym hoście
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-09-16Gdy strona główna ląduje dla zwykłego pobrania na hoście spoza domeny, porównanie cloakingu jest pomijane; gdy poza domeną ląduje tylko Googlebot, dalej jest to cloaking.helpers/infection_check.py · helpers/html_fetch.pyInna treść cudzego serwisu dla botów nie jest infekcją strony klienta.tylko ten parametrcf89ebebez replayubez zapisu zatwierdzenia
Zdrowa strona nie może wyglądać na martwą: powtórki pobraniazamknięta historyczna 2026-09-05

Sygnał: Działające strony wypadały z całego skanu bezpieczeństwa: serwer deklarujący gzip wysyłał coś innego, a WAF odrzucał nagłówek monitora. Bez strony głównej nie było odczytu wersji ani heurystyk infekcji. · dotyczy też: Wersja WordPressa, Indeksowalność

  1. 1. Zbiórkaręcznieodczyt z nocnego skanu, bez zapisu per strona
  2. 2. Werdyktręcznieczłowiek rozpoznał zdrowe strony jako „martwe” w skanie
  3. 3. Miarabrakliczników trafności wtedy nie było
  4. 4. Kartabrakkarta parametru powstała 2026-09-16
  5. 5. Zmianazrobionepowtórki pobrania strony głównej
  6. 6. Replaybrakbrak zapisanych odczytów do replayu
DataZmianaPowódWpływ na systemCommit · replay
2026-09-05Kod 403, 406, 415, 429 lub 451 dla nagłówka monitora = jedna powtórka z nagłówkami przeglądarki (nie dla Googlebota); błąd dekompresji = jedna powtórka bez kompresji.helpers/html_fetch.pyBlokada nagłówka monitora i błędny gzip dawały „stronę martwą”, choć działała dla ludzi.cały system Wspólne pobranie strony głównej zasila też infekcję, indeksowalność i SEO; Googlebot celowo bez powtórki, żeby nie zamazać sygnału cloakingu. Wydłużenie limitu połączenia z tego samego wydania opisuje pętla exposure-h1.b0fc77cbez replayubez zapisu zatwierdzenia
Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com