<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Web-Security on Mazin Ahmed</title><link>https://mazinahmed.net/tags/web-security/</link><description>Recent content in Web-Security on Mazin Ahmed</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 16 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://mazinahmed.net/tags/web-security/index.xml" rel="self" type="application/rss+xml"/><item><title>Attacking GraphQL APIs (OWASP PNW 2024)</title><link>https://mazinahmed.net/blog/attacking-graphql-apis-owasp-pnw-2024/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://mazinahmed.net/blog/attacking-graphql-apis-owasp-pnw-2024/</guid><description>&lt;p&gt;I spoke at OWASP AppSec Days Pacific Northwest 2024 in Vancouver about attacking GraphQL APIs.&lt;/p&gt;&#10;&lt;p&gt;The talk covered a range of GraphQL attacks and advanced attack vectors, along with the security considerations that are beyond the traditional checklists.&lt;/p&gt;&#10;&lt;h2 id="slides" class="relative group"&gt;Slides &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#slides" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;PDF:&lt;/strong&gt; &lt;a href="https://github.com/mazen160/public/raw/master/documents/Attacking%20GraphQL%20APIs%20-%20OWASP%20AppSec%20Days%20Pacific%20Northwest%202024.pdf" target="_blank" rel="noreferrer"&gt;Attacking GraphQL APIs - OWASP AppSec Days Pacific Northwest 2024.pdf&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;PowerPoint:&lt;/strong&gt; &lt;a href="https://github.com/mazen160/public/raw/master/documents/Attacking%20GraphQL%20APIs%20-%20OWASP%20AppSec%20Days%20Pacific%20Northwest%202024.pptx" target="_blank" rel="noreferrer"&gt;Attacking GraphQL APIs - OWASP AppSec Days Pacific Northwest 2024.pptx&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="speaker-preview" class="relative group"&gt;Speaker Preview &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#speaker-preview" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;The conference published a short speaker preview ahead of the talk.&lt;/p&gt;</description></item><item><title>The Path for Testing Path Traversal Vulnerabilities with Python</title><link>https://mazinahmed.net/blog/testing-for-path-traversal-with-python/</link><pubDate>Sun, 12 Apr 2020 00:00:00 +0000</pubDate><guid>https://mazinahmed.net/blog/testing-for-path-traversal-with-python/</guid><description>&lt;hr&gt;&#10;&lt;p&gt;I have noticed an odd behavior in the &lt;code&gt;requests&lt;/code&gt; module in Python, which uses urllib3. I inspected the root cause via regression testing, and I found that the root cause was a change introduced in urllib3.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; requests&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;requests&lt;span style="color:#f92672"&gt;.&lt;/span&gt;get(&lt;span style="color:#e6db74"&gt;&amp;#34;http://127.0.0.1/../../../../doing/certain/check&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This should typically send the request to &lt;code&gt;/../../../../doing/certain/check&lt;/code&gt;. Instead, it requests &lt;code&gt;/doing/certain/check&lt;/code&gt; and modifies the specified input.&lt;/p&gt;&#10;&lt;p&gt;The reason is dot-segment normalization, following RFC3986.&lt;/p&gt;&#10;&lt;p&gt;The change to normalize URIs was introduced in this commit[1] to follow RFC3986[2]. The change is based on the &amp;ldquo;Remove Dot Segments&amp;rdquo; section in the RFC.&lt;/p&gt;</description></item><item><title>Search Engine Abuse in Popular Social Networks</title><link>https://mazinahmed.net/blog/search-engine-abuse-in-popular-social-networks/</link><pubDate>Fri, 17 May 2019 12:03:11 +0000</pubDate><guid>https://mazinahmed.net/blog/search-engine-abuse-in-popular-social-networks/</guid><description>&lt;hr&gt;&#10;&lt;p&gt;&lt;em&gt;This is a blog post by &lt;a href="https://twitter.com/mazen160" target="_blank" rel="noreferrer"&gt;Mazin Ahmed&lt;/a&gt; and &lt;a href="https://twitter.com/_khaledfarah" target="_blank" rel="noreferrer"&gt;Khaled Farah&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="introduction" class="relative group"&gt;Introduction &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#introduction" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Popular social networks are affected by a &amp;ldquo;by-design&amp;rdquo; security vulnerability that allows unauthorized parties to control their search history. Unauthorized parties are capable of inserting their own chosen keywords in the search history of Google, Facebook, LinkedIn, and YouTube.&lt;/p&gt;&#10;&lt;h2 id="technical-details" class="relative group"&gt;Technical Details &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#technical-details" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;The bug is relatively simple in terms of explanation and exploitation. It has been reported by us, and possibly by others to the social networks, and it was marked as an &amp;ldquo;acceptable risk&amp;rdquo; by the affected companies. We agree it&amp;rsquo;s a low risk issue, but due to the trivial exploitation of this attack, it may be a good idea to implement a fix. We&amp;rsquo;re releasing a blog article to open a public discussion regarding the vulnerability.&lt;/p&gt;</description></item></channel></rss>