Agentic Testari Sentinel Hub · FriendlyAI agentictestari.com
Luottamuksellinen
L3 MAX Public-max · ei-tuhoava

Julkisen pinnan arviointi — Q Factory

WordPress on WP Engine. REST user enumeration still live, near-zero security headers, DMARC none. True L3: HIGH 4 · MEDIUM 3.

Kohde q-factory.fi Päivä 2026-07-29 RoE public-max · ei-tuhoava Engagement eng_qfactory_l3_1358
4
HIGH
3
MED
0
INFO
OK

Johtoyhteenveto

Miksi toimia nyt

Nämä havainnot eivät ole teoreettisia: ne ovat julkisia pintoja. Jokaisessa kortissa on todiste, vaikutus, omistaja, korjaus ja validointi.

Jokainen havainto: ongelma, missä, vaikutus, omistaja, PoC, korjaus, validointi.

WordPress on WP Engine. REST user enumeration still live, near-zero security headers, DMARC none. True L3: HIGH 4 · MEDIUM 3.

Pinossa tässä ajossa

KomponenttiKäytössäHuom
ParviClaw Core + AWPKYLLÄ (lab)pack engagementissa
ParviSight browserosittainHTTP walk
PayBotFin Witness livesopimuksen mukaanrehellinen laajuus

Havainnot

Jokainen havainto: ongelma, missä, vaikutus, omistaja, PoC, korjaus, validointi.

QF-H1

WordPress REST user enumeration

KORKEA
Ongelma

GET https://q-factory.fi/wp-json/wp/v2/users → 200. Five users public including id 25 name onni-vilhelm.ojanen@q-factory.fi (personal email as WP display name); also hutcode, jenny.ammondt, petra.vaisalo, Q-Factory Oy. Re-confirmed live 2026-07-31. last_reprobe=2026-07-31.

Exposes real account identifiers for phishing and password spray.

Exposed identities (live re-check)

GET https://q-factory.fi/wp-json/wp/v2/users2005 users public, including a person e-mail used as WordPress display name:

idslugname (public)
26hutcodehutcode
28jenny-ammondtjenny.ammondt
25onni-vilhelm-ojanenq-factory-fionni-vilhelm.ojanen@q-factory.fi
23petra-vaisalopetra.vaisalo
2qfactoryQ-Factory Oy
Also open: /wp-json, /wp-json/wp/v2, posts. First pentest (2026-07-28 phase2) already recorded id 25 as email-like identity; re-confirmed live 2026-07-31.

Mitä hyökkääjä tai agentti-hakkeri voi tehdä
  • Human: Harvest public WP usernames/emails for phishing and password spray.
  • Agent (LLM+tools): Pull /wp-json/wp/v2/users in a loop; expand spray lists.
  • If invasive/destructive: Account takeover → CMS compromise. L3 only proves unauthenticated enum.
Kenen vastuulla

Qfactory — turva / tuote / infra (vahvista omistaja)

PoC (todiste — ei korjaa)

Read-only. Does not change the system.

curl -sS 'https://q-factory.fi/wp-json/wp/v2/users' | head -c 800
Miten korjata

Block unauthenticated /wp-json/wp/v2/users; never use email as display name; MFA on WP; harden wp-login.

Miten validoida korjaus

Identity recon and spray surface remain free forever.

QF-H2

Missing major security headers

KORKEA
Ongelma

https://q-factory.fi/ response headers — What / evidence: No CSP/HSTS/XFO/nosniff baseline (deep + prior). Fix: Full header baseline last_reprobe=2026-07-31.

Weak browser security headers increase impact of XSS/clickjacking/MITM.

Mitä hyökkääjä tai agentti-hakkeri voi tehdä
  • Human: Public headers surface on q-factory.fi expands attacker recon.
  • Agent (LLM+tools): Keep surface in continuous recon.
  • If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Kenen vastuulla

Qfactory — turva / tuote / infra (vahvista omistaja)

PoC (todiste — ei korjaa)

Read-only. Does not change the system.

curl -sSI 'https://q-factory.fi/' | egrep -i 'strict-transport|content-security|x-frame|x-content'
Miten korjata

Add/tighten HSTS, CSP, XFO, nosniff, Referrer-Policy, Permissions-Policy on https://q-factory.fi/.

Miten validoida korjaus

Exposure remains until closed.

QF-H3

DMARC p=none

KORKEA
Ongelma

DNS TXT at _dmarc.q-factory.fi publishes a DMARC policy with p=none (monitor-only). Receiving servers do not quarantine/reject forged @q-factory.fi mail on DMARC fail. This is email brand spoofing / BEC risk, not a website bug. Proof: dig TXT _dmarc.q-factory.fi +short last_reprobe=2026-07-31.

Brand email spoofing / BEC remains easier while DMARC on q-factory.fi is not reject.

Missä

DNS record (not a website): _dmarc.q-factory.fi TXT
Mail domain: @q-factory.fi

Mitä hyökkääjä tai agentti-hakkeri voi tehdä
  • Human: Forge invoices / IT resets as @q-factory.fi while p=none.
  • Agent (LLM+tools): Re-check DMARC; automate brand-domain spoof campaigns.
  • If invasive/destructive: Financial fraud via trusted-looking mail — not CMS takeover from this alone. L3 only proves DNS policy (dig).
Kenen vastuulla

Qfactory — turva / tuote / infra (vahvista omistaja)

PoC (todiste — ei korjaa)

Read-only. Does not change the system.

dig TXT _dmarc.q-factory.fi +short
Miten korjata

Align SPF/DKIM for all legitimate senders; move DMARC to p=quarantine then p=reject; monitor rua; document third-party senders.

Miten validoida korjaus

Brand spoofing of @q-factory.fi stays easy forever.

QF-H4

Public wp-login

KORKEA
Ongelma

https://q-factory.fi/ — What / evidence: Login spray surface with known usernames. Fix: MFA, rate limit, WAF last_reprobe=2026-07-31.

Default WP login is a permanent spray target.

Mitä hyökkääjä tai agentti-hakkeri voi tehdä
  • Human: Public wp_login surface on q-factory.fi expands attacker recon.
  • Agent (LLM+tools): Keep surface in continuous recon.
  • If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Kenen vastuulla

Qfactory — turva / tuote / infra (vahvista omistaja)

PoC (todiste — ei korjaa)

Read-only. Does not change the system.

curl -sSI 'https://q-factory.fi/'
Miten korjata

MFA, rate limit, WAF, optional allowlist; combine with blocking user REST enum.

Miten validoida korjaus

Exposure remains until closed.

QF-M1

Full REST index open

KESKI
Ongelma

large wp-json surface (surface: https://q-factory.fi/). last_reprobe=2026-07-31.

Public brand surface on q-factory.fi expands recon until closed.

Mitä hyökkääjä tai agentti-hakkeri voi tehdä
  • Human: Public edge surface on q-factory.fi expands attacker recon.
  • Agent (LLM+tools): Keep surface in continuous recon.
  • If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Kenen vastuulla

Qfactory — turva / tuote / infra (vahvista omistaja)

PoC (todiste — ei korjaa)

Read-only. Does not change the system.

curl -sSI 'https://q-factory.fi/'
Miten korjata

Remove unnecessary public hosts on q-factory.fi DNS or enforce strong auth/WAF; re-test from internet.

Miten validoida korjaus

Re-run PoC from public internet until closed (q-factory.fi).

QF-M2

HubSpot forms third-party

KESKI
Ongelma

HubSpot forms third-party (surface: https://q-factory.fi/). last_reprobe=2026-07-31.

Public brand surface on q-factory.fi expands recon until closed.

Mitä hyökkääjä tai agentti-hakkeri voi tehdä
  • Human: Public edge surface on q-factory.fi expands attacker recon.
  • Agent (LLM+tools): Keep surface in continuous recon.
  • If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Kenen vastuulla

Qfactory — turva / tuote / infra (vahvista omistaja)

PoC (todiste — ei korjaa)

Read-only. Does not change the system.

curl -sSI 'https://q-factory.fi/'
Miten korjata

Remove unnecessary public hosts on q-factory.fi DNS or enforce strong auth/WAF; re-test from internet.

Miten validoida korjaus

Re-run PoC from public internet until closed (q-factory.fi).

QF-M3

moodle/equal historical DNS

KESKI
Ongelma

not responding now — watch reappearance (surface: https://q-factory.fi/). last_reprobe=2026-07-31.

Public brand surface on q-factory.fi expands recon until closed.

Mitä hyökkääjä tai agentti-hakkeri voi tehdä
  • Human: Public edge surface on q-factory.fi expands attacker recon.
  • Agent (LLM+tools): Keep surface in continuous recon.
  • If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Kenen vastuulla

Qfactory — turva / tuote / infra (vahvista omistaja)

PoC (todiste — ei korjaa)

Read-only. Does not change the system.

curl -sSI 'https://q-factory.fi/'
Miten korjata

Remove unnecessary public hosts on q-factory.fi DNS or enforce strong auth/WAF; re-test from internet.

Miten validoida korjaus

Re-run PoC from public internet until closed (q-factory.fi).

Liitteet (AWP + Core)

Oikea pack L3 max retestistä 2026-07-31 (public-max, ei-tuhoava). Jokaisella tiedostolla on kuvateksti.

1) awp-receipt.json — AWP-krypto

Mikä se on: allekirjoitettu Agent Witness Protocol -kuitti (offline-tarkistettava).
Mitä se todistaa: meidän testi-/engagement-lokimme eheyden.
Mitä se EI ole: ei yksin todista bugia hostissanne (se on kunkin havainnon PoC).
→ lataa awp-receipt.json

2) leaves.jsonl — engagement-päiväkirja

→ lataa leaves.jsonl · leaf-chain.txt (PASS)

3) retest-raw.json — HTTP-probet

→ lataa retest-raw.json

4) agentic-walk.json + core-export

agentic-walk.json · core-export.json · kansio

Miten AWP:ta käytetään / varmennetaan (open-source)

npx agent-witness-protocol verify awp-receipt.json

PASS (rehellisesti): kuitin allekirjoitus ja Merkle-todiste ok — testiloki on ehjä.
PASS ei tarkoita: että tuotantobugi on korjattu, tai että PayBotFin live-witness oli käytössä (local_awp_dev / DEV_LAB).

Korjausjärjestys tiimille

  1. Sulje HIGH-julkiset altistukset ensin (auth / VPN / DNS).
  2. Korjaa MEDIUM-otsikot, postikäytäntö ja non-prod.
  3. Uudelleentestaa PoC:t julkisesta netistä kunnes kiinni.
  4. Arkistoi AWP/evidence auditointia ja retestiä varten.