<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Ibrahim Radi · Field Notes</title><description>Ibrahim Radi, Security Engineer and technical co-founder of Flawtrack. Attack Surface Management, threat intelligence, DevSecOps, penetration testing, and CTF.</description><link>https://ibraradi.me/</link><item><title>Defeating a Four-Layer Flutter RASP: When Frida Is the Wrong Tool</title><link>https://ibraradi.me/blog/defeating-a-flutter-rasp/</link><guid isPermaLink="true">https://ibraradi.me/blog/defeating-a-flutter-rasp/</guid><description>Defeating a four-layer Flutter RASP across Java, native C, and compiled Dart - and why, for a Frida-aware app, Frida is the wrong tool (use Magisk&apos;s Zygisk DenyList instead).</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Intercepting and Tampering Firestore: building a proxy/repeater for a Firebase mobile app</title><link>https://ibraradi.me/blog/intercepting-firestore/</link><guid isPermaLink="true">https://ibraradi.me/blog/intercepting-firestore/</guid><description>How a small observation (&quot;the app works, the proxy&apos;s running and traffic is flowing, yet I never capture a thing&quot;) turned into a reusable tool for intercepting, editing, and replaying Google Cloud Firestore traffic from a mobile app.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Infrastructure takeover through insecure attachment handling (LFI &amp; SSRF)</title><link>https://ibraradi.me/blog/attachment-handling-lfi-ssrf-takeover/</link><guid isPermaLink="true">https://ibraradi.me/blog/attachment-handling-lfi-ssrf-takeover/</guid><description>An email feature fetched attachments by URL, but it also resolved a bare local path. No protocol, no metadata trick, just a filename: reading /proc/self/environ returned the process environment and its secrets (AWS, Twilio, SendGrid, Stripe, DB strings) straight into my inbox.</description><pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate></item><item><title>Cross-subdomain JWT account takeover: from email reuse to full org compromise</title><link>https://ibraradi.me/blog/cross-subdomain-jwt-account-takeover/</link><guid isPermaLink="true">https://ibraradi.me/blog/cross-subdomain-jwt-account-takeover/</guid><description>A red-team case study: weak JWT validation (keyed on email), no email verification, and a spoofable Source header let one token cross tenants and escalate to full admin across a multi-tenant SaaS.</description><pubDate>Tue, 05 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Manipulating Email Trust: Invoice Import to GitHub and Slack Takeover</title><link>https://ibraradi.me/blog/manipulating-email-trust/</link><guid isPermaLink="true">https://ibraradi.me/blog/manipulating-email-trust/</guid><description>Accounting tools that import receipts by email decide who owns an incoming message by its sender. Set that source to noreply@github.com and GitHub&apos;s verification code lands in your portal; bridge Slack through an Apple OAuth account, and one invoice feature becomes account takeover of a company&apos;s GitHub and Slack.</description><pubDate>Sun, 03 Mar 2024 00:00:00 GMT</pubDate></item><item><title>From automated discovery to manual exploitation: PII leak to XSS in an appointment system</title><link>https://ibraradi.me/blog/automated-discovery-to-manual-exploitation/</link><guid isPermaLink="true">https://ibraradi.me/blog/automated-discovery-to-manual-exploitation/</guid><description>Wayback recon surfaced an appointment platform that carried session tokens in GET parameters and leaked PII in archived URLs. From there: a space-free XSS in the phone field a prior hunter missed, and a stored XSS through a file-upload URL reflected unsanitised into the admin panel.</description><pubDate>Wed, 14 Jun 2023 00:00:00 GMT</pubDate></item><item><title>Stored XSS in a SOQL query console</title><link>https://ibraradi.me/blog/xss-in-soql-console/</link><guid isPermaLink="true">https://ibraradi.me/blog/xss-in-soql-console/</guid><description>A management dashboard let admins run SOQL queries and rendered the results as HTML. By seeding XSS into user records on the managed site and hitting the raw QueryConsole endpoint, which returned HTML instead of JSON, the payload fired in any console user&apos;s browser.</description><pubDate>Thu, 18 May 2023 00:00:00 GMT</pubDate></item><item><title>Upgrade Free to Paid by rewriting the response</title><link>https://ibraradi.me/blog/free-to-paid-response-manipulation/</link><guid isPermaLink="true">https://ibraradi.me/blog/free-to-paid-response-manipulation/</guid><description>A hosting product gated its paid themes and features entirely in the client. By diffing a free response against a paid one and rewriting the bytes the browser trusts, a free account got the full paid experience, then I packaged it as a browser extension.</description><pubDate>Fri, 03 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Weaponising a shared ML model: RCE via pickle deserialization</title><link>https://ibraradi.me/blog/ml-model-pickle-rce/</link><guid isPermaLink="true">https://ibraradi.me/blog/ml-model-pickle-rce/</guid><description>Loading a shared model file can be remote code execution, because Python&apos;s pickle format is not data, it is a program. A crafted phishing-detection model runs the attacker&apos;s command the moment an engineer calls pickle.load().</description><pubDate>Sat, 20 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Came looking for SSRF and found XSS</title><link>https://ibraradi.me/blog/came-looking-for-ssrf-and-found-xss/</link><guid isPermaLink="true">https://ibraradi.me/blog/came-looking-for-ssrf-and-found-xss/</guid><description>A bookmark importer fetched a URL and previewed its title and link tags. Every SSRF payload failed, but the title tag was not sanitized (self-XSS), and an audio/onerror trick slipped past the save-time event-handler filter into a stored XSS.</description><pubDate>Thu, 04 Aug 2022 00:00:00 GMT</pubDate></item></channel></rss>