<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>PXLSec — Notes from the engagement</title>
  <subtitle>Technical write-ups from the PXLSec team: offensive-security methodology, written to be useful to the defenders on the other side of it.</subtitle>
  <link href="https://pxlsec.com/blog/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="https://pxlsec.com" rel="alternate" type="text/html"/>
  <id>https://pxlsec.com/blog/feed.xml</id>
  <updated>2026-10-07T00:00:00Z</updated>
  <author><name>PXLSec</name><uri>https://pxlsec.com</uri></author>
  <rights>© 2026 PXLSecurity LTD.</rights>
  <entry>
    <title>What an AI penetration test actually covers</title>
    <link href="https://pxlsec.com/blog/what-an-ai-penetration-test-covers"/>
    <id>https://pxlsec.com/blog/what-an-ai-penetration-test-covers</id>
    <updated>2026-10-07T00:00:00Z</updated>
    <summary>Scope an AI security assessment across administration, data retrieval, agent actions and prompt injection, with clear permissions, evidence and safety limits.</summary>
  </entry>
  <entry>
    <title>We almost never need an exploit</title>
    <link href="https://pxlsec.com/blog/we-almost-never-need-an-exploit"/>
    <id>https://pxlsec.com/blog/we-almost-never-need-an-exploit</id>
    <updated>2026-10-07T00:00:00Z</updated>
    <summary>Across our own engagements the severe findings are configuration, identity and misplaced trust — not memory corruption. What that means for where you spend remediation effort.</summary>
  </entry>
  <entry>
    <title>How to choose a penetration testing provider</title>
    <link href="https://pxlsec.com/blog/how-to-choose-a-penetration-testing-provider"/>
    <id>https://pxlsec.com/blog/how-to-choose-a-penetration-testing-provider</id>
    <updated>2026-10-07T00:00:00Z</updated>
    <summary>What actually separates providers, the questions that expose the difference, and what a cheap quote is usually buying. Written to be useful even if you pick someone else.</summary>
  </entry>
  <entry>
    <title>Does SOC 2 require a penetration test?</title>
    <link href="https://pxlsec.com/blog/does-soc-2-require-a-penetration-test"/>
    <id>https://pxlsec.com/blog/does-soc-2-require-a-penetration-test</id>
    <updated>2026-10-07T00:00:00Z</updated>
    <summary>What SOC 2 says about security testing, how Type 1 and Type 2 evidence differ, and which testing expectations to agree with your service auditor.</summary>
  </entry>
  <entry>
    <title>Vulnerability scan vs penetration test</title>
    <link href="https://pxlsec.com/blog/vulnerability-scan-vs-penetration-test"/>
    <id>https://pxlsec.com/blog/vulnerability-scan-vs-penetration-test</id>
    <updated>2026-10-06T00:00:00Z</updated>
    <summary>A scan tells you what is probably wrong. A test proves what an attacker could do with it. Where each earns its place, and the mistake buyers keep making.</summary>
  </entry>
  <entry>
    <title>Prompt injection isn't your first AI risk — the admin plane is</title>
    <link href="https://pxlsec.com/blog/ai-admin-plane-first-risk"/>
    <id>https://pxlsec.com/blog/ai-admin-plane-first-risk</id>
    <updated>2026-10-05T00:00:00Z</updated>
    <summary>AI administration, credentials and artefact access deserve explicit testing alongside prompt injection. How to separate confirmed access from potential downstream impact.</summary>
  </entry>
  <entry>
    <title>Penetration test vs red team</title>
    <link href="https://pxlsec.com/blog/penetration-test-vs-red-team"/>
    <id>https://pxlsec.com/blog/penetration-test-vs-red-team</id>
    <updated>2026-10-05T00:00:00Z</updated>
    <summary>One maps your weaknesses, the other measures whether anyone notices an intruder. Choosing the wrong one is an expensive way to learn the difference.</summary>
  </entry>
  <entry>
    <title>What drives the cost of a penetration test</title>
    <link href="https://pxlsec.com/blog/what-drives-the-cost-of-a-penetration-test"/>
    <id>https://pxlsec.com/blog/what-drives-the-cost-of-a-penetration-test</id>
    <updated>2026-10-04T00:00:00Z</updated>
    <summary>Why two honest quotes for the same words can differ enormously, what actually determines effort, and the questions that make proposals comparable.</summary>
  </entry>
  <entry>
    <title>How long does a penetration test take?</title>
    <link href="https://pxlsec.com/blog/how-long-does-a-penetration-test-take"/>
    <id>https://pxlsec.com/blog/how-long-does-a-penetration-test-take</id>
    <updated>2026-10-04T00:00:00Z</updated>
    <summary>The testing is rarely the long part. What actually drives the calendar, what you control, and why leaving the retest out of the plan is the usual mistake.</summary>
  </entry>
  <entry>
    <title>Your tenant boundary is an HTTP header</title>
    <link href="https://pxlsec.com/blog/your-tenant-boundary-is-an-http-header"/>
    <id>https://pxlsec.com/blog/your-tenant-boundary-is-an-http-header</id>
    <updated>2026-10-03T00:00:00Z</updated>
    <summary>A confirmed cross-tenant read, an unconfirmed write attempt, and practical guidance for testing SaaS tenant isolation without overinterpreting HTTP status codes.</summary>
  </entry>
  <entry>
    <title>Red team vs purple team</title>
    <link href="https://pxlsec.com/blog/red-team-vs-purple-team"/>
    <id>https://pxlsec.com/blog/red-team-vs-purple-team</id>
    <updated>2026-10-02T00:00:00Z</updated>
    <summary>Red teams measure whether you detect an intruder. Purple teams fix the detections while you watch. When each is worth the money.</summary>
  </entry>
  <entry>
    <title>Controls that are present and inert</title>
    <link href="https://pxlsec.com/blog/controls-that-are-present-and-inert"/>
    <id>https://pxlsec.com/blog/controls-that-are-present-and-inert</id>
    <updated>2026-10-01T00:00:00Z</updated>
    <summary>Why configured security controls may fail in practice, and how to assess browser headers, CORS, CSRF and login binding without overclaiming impact.</summary>
  </entry>
  <entry>
    <title>PTaaS vs manual penetration testing</title>
    <link href="https://pxlsec.com/blog/ptaas-vs-manual-penetration-testing"/>
    <id>https://pxlsec.com/blog/ptaas-vs-manual-penetration-testing</id>
    <updated>2026-09-30T00:00:00Z</updated>
    <summary>PTaaS is a delivery model; manual testing is a method. Compare human effort, coverage, evidence and retest terms without confusing the two.</summary>
  </entry>
  <entry>
    <title>PCI DSS segmentation testing explained</title>
    <link href="https://pxlsec.com/blog/pci-dss-segmentation-testing-explained"/>
    <id>https://pxlsec.com/blog/pci-dss-segmentation-testing-explained</id>
    <updated>2026-09-30T00:00:00Z</updated>
    <summary>Segmentation testing isn't a pentest of the cardholder data environment — it's proof that the controls keeping systems out of scope actually work. What that takes.</summary>
  </entry>
  <entry>
    <title>Remediation decay: what we found when we retested last year's findings</title>
    <link href="https://pxlsec.com/blog/remediation-decay"/>
    <id>https://pxlsec.com/blog/remediation-decay</id>
    <updated>2026-09-29T00:00:00Z</updated>
    <summary>We re-ran every finding from a client's previous report. About half were still live. Why remediation decays, and what 'fixed' has to mean to be worth anything.</summary>
  </entry>
  <entry>
    <title>Internal vs external penetration testing</title>
    <link href="https://pxlsec.com/blog/internal-vs-external-penetration-testing"/>
    <id>https://pxlsec.com/blog/internal-vs-external-penetration-testing</id>
    <updated>2026-09-28T00:00:00Z</updated>
    <summary>Testing the perimeter answers a different question from testing what happens after someone is already inside. Why assumed breach became the default.</summary>
  </entry>
  <entry>
    <title>Questions to ask before you sign a penetration test SoW</title>
    <link href="https://pxlsec.com/blog/questions-to-ask-before-signing-a-pentest-sow"/>
    <id>https://pxlsec.com/blog/questions-to-ask-before-signing-a-pentest-sow</id>
    <updated>2026-09-27T00:00:00Z</updated>
    <summary>Scope, rules of engagement, stop conditions, retest terms and data handling — what must be written down before anyone starts testing.</summary>
  </entry>
  <entry>
    <title>DORA TLPT vs a standard penetration test</title>
    <link href="https://pxlsec.com/blog/dora-tlpt-vs-penetration-test"/>
    <id>https://pxlsec.com/blog/dora-tlpt-vs-penetration-test</id>
    <updated>2026-09-26T00:00:00Z</updated>
    <summary>Most financial entities need a testing programme. Comparatively few are designated for threat-led testing. How the two obligations differ, and how to prepare for the one you actually face.</summary>
  </entry>
  <entry>
    <title>Red flags in a penetration test proposal</title>
    <link href="https://pxlsec.com/blog/red-flags-in-a-penetration-test-proposal"/>
    <id>https://pxlsec.com/blog/red-flags-in-a-penetration-test-proposal</id>
    <updated>2026-09-24T00:00:00Z</updated>
    <summary>A quote with no scoping conversation, day counts that cannot cover the scope, and other tells — with the question that exposes each one.</summary>
  </entry>
  <entry>
    <title>Disproving the CVE: when the version banner lies</title>
    <link href="https://pxlsec.com/blog/disproving-the-cve"/>
    <id>https://pxlsec.com/blog/disproving-the-cve</id>
    <updated>2026-09-23T00:00:00Z</updated>
    <summary>How to investigate version-based CVE candidates, distinguish verified prerequisites from negative probes, and document the limits of a conclusion.</summary>
  </entry>
  <entry>
    <title>The penetration testing buyer's checklist</title>
    <link href="https://pxlsec.com/blog/penetration-testing-buyers-checklist"/>
    <id>https://pxlsec.com/blog/penetration-testing-buyers-checklist</id>
    <updated>2026-09-22T00:00:00Z</updated>
    <summary>What to decide before you approach anyone, what to ask providers, how to compare proposals fairly, and what to prepare so the engagement is not wasted.</summary>
  </entry>
  <entry>
    <title>How to read a penetration test report</title>
    <link href="https://pxlsec.com/blog/how-to-read-a-penetration-test-report"/>
    <id>https://pxlsec.com/blog/how-to-read-a-penetration-test-report</id>
    <updated>2026-09-19T00:00:00Z</updated>
    <summary>What each section is for, what severity ratings really mean, how to spot a scanner echo, and how to turn a report into a remediation plan.</summary>
  </entry>
  <entry>
    <title>IDOR: the simplest bug that still owns APIs in 2026</title>
    <link href="https://pxlsec.com/blog/idor-the-bug-that-still-owns-apis"/>
    <id>https://pxlsec.com/blog/idor-the-bug-that-still-owns-apis</id>
    <updated>2026-08-25T00:00:00Z</updated>
    <summary>Insecure direct object references are the least glamorous bug in the book — and still one of the most common serious findings we report. Why they persist, and how to design them out.</summary>
  </entry>
  <entry>
    <title>What we actually find: recurring patterns from our engagements</title>
    <link href="https://pxlsec.com/blog/what-we-actually-find"/>
    <id>https://pxlsec.com/blog/what-we-actually-find</id>
    <updated>2026-03-10T00:00:00Z</updated>
    <summary>Across web, mobile, cloud, internal and red-team work, the same handful of root causes show up again and again. Here are the patterns we see most — and what they say about where to spend your security budget.</summary>
  </entry>
  <entry>
    <title>Business-logic flaws: the bugs a scanner can't see</title>
    <link href="https://pxlsec.com/blog/business-logic-flaws"/>
    <id>https://pxlsec.com/blog/business-logic-flaws</id>
    <updated>2025-09-30T00:00:00Z</updated>
    <summary>No injection, no misconfiguration — just an application doing exactly what it was told, in an order it shouldn't allow. Business-logic flaws are where manual testing earns its keep.</summary>
  </entry>
  <entry>
    <title>GraphQL security: introspection off is not schema hidden</title>
    <link href="https://pxlsec.com/blog/graphql-introspection-not-hidden"/>
    <id>https://pxlsec.com/blog/graphql-introspection-not-hidden</id>
    <updated>2025-03-18T00:00:00Z</updated>
    <summary>Disabling introspection feels like locking the door. It isn't. Here's how GraphQL schemas leak anyway, how APIs get exhausted, and what actually hardens them.</summary>
  </entry>
  <entry>
    <title>Purple teaming: turning red-team findings into detections</title>
    <link href="https://pxlsec.com/blog/purple-teaming-detections"/>
    <id>https://pxlsec.com/blog/purple-teaming-detections</id>
    <updated>2024-08-07T00:00:00Z</updated>
    <summary>A red team tells you an attacker got in undetected. Purple teaming turns that uncomfortable finding into concrete, tested detection improvements — fast.</summary>
  </entry>
  <entry>
    <title>DORA and NIS2: what the EU now expects you to test</title>
    <link href="https://pxlsec.com/blog/dora-nis2-what-to-test"/>
    <id>https://pxlsec.com/blog/dora-nis2-what-to-test</id>
    <updated>2024-02-19T00:00:00Z</updated>
    <summary>Two EU regimes raised the bar on security testing for a huge range of organisations. A plain-language guide to what they expect — and how to prepare.</summary>
  </entry>
  <entry>
    <title>NTLM relay still works in a modern AD estate</title>
    <link href="https://pxlsec.com/blog/ntlm-relay-modern-ad"/>
    <id>https://pxlsec.com/blog/ntlm-relay-modern-ad</id>
    <updated>2023-10-24T00:00:00Z</updated>
    <summary>Understand NTLM relay prerequisites, cross-protocol limits, authentication coercion and the protections needed for SMB, LDAP and AD CS.</summary>
  </entry>
  <entry>
    <title>Shift left, properly: threat modelling engineers actually use</title>
    <link href="https://pxlsec.com/blog/threat-modelling-that-works"/>
    <id>https://pxlsec.com/blog/threat-modelling-that-works</id>
    <updated>2023-05-11T00:00:00Z</updated>
    <summary>Threat modelling engineers will actually use: a short, repeatable conversation that catches expensive design bugs before anyone writes the code.</summary>
  </entry>
  <entry>
    <title>SSRF and cloud metadata: a dangerous combination</title>
    <link href="https://pxlsec.com/blog/ssrf-cloud-metadata"/>
    <id>https://pxlsec.com/blog/ssrf-cloud-metadata</id>
    <updated>2022-11-09T00:00:00Z</updated>
    <summary>How SSRF can reach cloud metadata, what IMDSv2 and its response hop limit protect, and what blind callbacks do and do not prove.</summary>
  </entry>
  <entry>
    <title>Secrets in source: the leak that keeps on giving</title>
    <link href="https://pxlsec.com/blog/secrets-in-source-code"/>
    <id>https://pxlsec.com/blog/secrets-in-source-code</id>
    <updated>2022-03-15T00:00:00Z</updated>
    <summary>How to detect exposed secrets, revoke their authority and decide on repository cleanup, with practical limits for entropy rules and short-lived credentials.</summary>
  </entry>
  <entry>
    <title>The OWASP API Security Top 10, in practice</title>
    <link href="https://pxlsec.com/blog/owasp-api-top-10-in-practice"/>
    <id>https://pxlsec.com/blog/owasp-api-top-10-in-practice</id>
    <updated>2021-09-28T00:00:00Z</updated>
    <summary>APIs break differently from web apps. The OWASP API Top 10 names the risks — here's which ones we actually find most, and what to do about them.</summary>
  </entry>
  <entry>
    <title>From zero to Domain Admin: reading Active Directory attack paths with BloodHound</title>
    <link href="https://pxlsec.com/blog/bloodhound-to-domain-admin"/>
    <id>https://pxlsec.com/blog/bloodhound-to-domain-admin</id>
    <updated>2021-07-13T00:00:00Z</updated>
    <summary>A full walkthrough of how we use BloodHound on engagements to turn a single low-privileged foothold into Domain Admin — and, for every step, how blue teams detect and close the path.</summary>
  </entry>
  <entry>
    <title>Kerberoasting, explained for defenders</title>
    <link href="https://pxlsec.com/blog/kerberoasting-explained"/>
    <id>https://pxlsec.com/blog/kerberoasting-explained</id>
    <updated>2021-04-20T00:00:00Z</updated>
    <summary>How Kerberoasting uses service tickets for offline password guessing, which activity can be audited, and how managed service accounts reduce risk.</summary>
  </entry>
  <entry>
    <title>If a finding isn't reproducible, it isn't finished</title>
    <link href="https://pxlsec.com/blog/reproducible-pentest-reports"/>
    <id>https://pxlsec.com/blog/reproducible-pentest-reports</id>
    <updated>2020-10-06T00:00:00Z</updated>
    <summary>A penetration test report is only as good as an engineer's ability to reproduce every finding. Here's what reproducible reporting looks like, and why it's the real test of a testing firm.</summary>
  </entry>
  <entry>
    <title>Password spraying still works: defending the front door</title>
    <link href="https://pxlsec.com/blog/password-spraying-still-works"/>
    <id>https://pxlsec.com/blog/password-spraying-still-works</id>
    <updated>2020-05-14T00:00:00Z</updated>
    <summary>How password spraying can evade some per-account thresholds, how to detect it without logging passwords, and how to protect user and workload identities.</summary>
  </entry>
  <entry>
    <title>From one web foothold to the entire data tier</title>
    <link href="https://pxlsec.com/blog/database-superuser-is-your-blast-radius"/>
    <id>https://pxlsec.com/blog/database-superuser-is-your-blast-radius</id>
    <updated>2019-03-26T00:00:00Z</updated>
    <summary>How application credentials expand a compromise, and what least privilege, tenant isolation and KMS encryption can and cannot contain.</summary>
  </entry>
  <entry>
    <title>Your mobile app is a credential vault</title>
    <link href="https://pxlsec.com/blog/your-mobile-app-is-a-credential-vault"/>
    <id>https://pxlsec.com/blog/your-mobile-app-is-a-credential-vault</id>
    <updated>2018-01-30T00:00:00Z</updated>
    <summary>Hardcoded credentials, local encryption and runtime controls: what a mobile assessment can verify, and the different roles of Keychain, Secure Enclave and Keystore.</summary>
  </entry>
  <entry>
    <title>A vulnerability scan is not a penetration test</title>
    <link href="https://pxlsec.com/blog/scanner-is-not-a-pentest"/>
    <id>https://pxlsec.com/blog/scanner-is-not-a-pentest</id>
    <updated>2016-03-08T00:00:00Z</updated>
    <summary>Scanners are useful — but buying a scan branded as a penetration test leaves real risk on the table. Here's the difference, and how to tell which one you're actually getting.</summary>
  </entry>
</feed>
