<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Hack The Planet 🌎]]></title><description><![CDATA[Hack The Planet 🌎]]></description><link>https://z-sec.co</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 00:59:14 GMT</lastBuildDate><atom:link href="https://z-sec.co/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Reverse Account Takeover via Email Rebinding Causing Forced Privilege De-Escalation]]></title><description><![CDATA[When we talk about account takeover, we usually imagine a familiar story: an attacker steals credentials, hijacks a session, or abuses password reset flows to log in as someone else.
This write-up is about something more subtle — and arguably more da...]]></description><link>https://z-sec.co/reverse-account-takeover-via-email-rebinding-causing-forced-privilege-de-escalation</link><guid isPermaLink="true">https://z-sec.co/reverse-account-takeover-via-email-rebinding-causing-forced-privilege-de-escalation</guid><category><![CDATA[Web Security]]></category><category><![CDATA[account takeover]]></category><category><![CDATA[Privilege Escalation]]></category><category><![CDATA[saas security]]></category><category><![CDATA[api security]]></category><category><![CDATA[penetration testing]]></category><category><![CDATA[Ethical Hacking]]></category><category><![CDATA[business logic]]></category><dc:creator><![CDATA[Zeeshan M.]]></dc:creator><pubDate>Fri, 16 Jan 2026 21:53:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1768600514106/60704d1a-9cf7-47e9-b5be-73fec793685d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When we talk about account takeover, we usually imagine a familiar story: an attacker steals credentials, hijacks a session, or abuses password reset flows to log in as someone else.</p>
<p>This write-up is about something more subtle — and arguably more dangerous.</p>
<p>During a recent assessment, I discovered a vulnerability where a <strong>low-privileged user could force a workspace owner to lose their privileges entirely</strong>, without ever logging in as them. The owner didn’t get hacked in the traditional sense — instead, the application reassigned identity in a way that caused <strong>forced privilege de-escalation</strong> and effective account takeover.</p>
<p>This post walks through how it happened, why it worked, and what developers can learn from it.</p>
<h2 id="heading-application-overview">Application overview</h2>
<p>The target application is a multi-tenant SaaS platform. Each customer has one or more <strong>workspaces</strong>, and users inside those workspaces are assigned roles:</p>
<ul>
<li><p><strong>Owner</strong> (super-admin level)</p>
</li>
<li><p><strong>Manager</strong></p>
</li>
<li><p><strong>Member</strong></p>
</li>
</ul>
<p>The owner has full control — user management, configuration, and critical workspace actions. Manager and Member have minimal privileges.</p>
<p>I was authenticated as a <strong>member-level user</strong>, testing normal account functionality with proper authorization from the client.</p>
<h2 id="heading-the-starting-point-profile-updates">The starting point: profile updates</h2>
<p>Like most modern SaaS platforms, the application allowed users to update basic profile information such as:</p>
<ul>
<li><p>Display name</p>
</li>
<li><p>Preferred language</p>
</li>
</ul>
<p>While updating my profile, I intercepted the request using Burp Suite. The request was sent to:</p>
<pre><code class="lang-bash">PUT /api/users/me
</code></pre>
<p>The request body looked harmless:</p>
<pre><code class="lang-bash">{
  <span class="hljs-string">"displayName"</span>: <span class="hljs-string">"Member-1"</span>,
  <span class="hljs-string">"userSystemLanguage"</span>: <span class="hljs-string">"en-US"</span>
}
</code></pre>
<p>The response returned my full user object, including some personally identifiable information (PII). While reviewing it, something stood out.</p>
<h2 id="heading-a-small-detail-that-mattered">A small detail that mattered</h2>
<p>Inside the response, I noticed two properties:</p>
<ul>
<li><p><code>email</code></p>
</li>
<li><p><code>primaryemail</code></p>
</li>
</ul>
<p>Both were set to my registered email address.</p>
<p>This raised a simple question:</p>
<blockquote>
<p>What happens if I try to set these fields myself?</p>
</blockquote>
<p>The frontend UI never exposed email changes here — but the backend clearly accepted and returned them. That meant the server was likely trusting client-supplied values.</p>
<h2 id="heading-the-experiment">The experiment</h2>
<p>I modified the same request and added the following fields:</p>
<pre><code class="lang-bash">{
  <span class="hljs-string">"displayName"</span>: <span class="hljs-string">"Member-1"</span>,
  <span class="hljs-string">"userSystemLanguage"</span>: <span class="hljs-string">"en-US"</span>,
  <span class="hljs-string">"email"</span>: <span class="hljs-string">"john.doe@redacted.com"</span>,
  <span class="hljs-string">"primaryemail"</span>: <span class="hljs-string">"john.doe@redacted.com"</span>
}
</code></pre>
<p><a target="_blank" href="mailto:jason@custom.com"><code>john.doe@redacted.com</code></a> belonged to the <strong>workspace owner</strong> — the highest-privileged user in that tenant.</p>
<p>I sent the request.</p>
<p>The backend accepted it.</p>
<p>No validation error.<br />No ownership check.<br />No email verification flow.</p>
<p>The response came back successfully, showing my account now associated with the owner’s email address.</p>
<h2 id="heading-what-happened-next">What happened next</h2>
<p>After refreshing the application, my session broke and I started seeing server errors.</p>
<p>At the same time, the workspace owner logged back into their account.</p>
<p>What they saw was alarming:</p>
<ul>
<li><p>Their owner privileges were gone</p>
</li>
<li><p>Their account had been demoted to a lower role (member)</p>
</li>
<li><p>They could no longer manage their own workspace</p>
</li>
</ul>
<p>In simple terms:</p>
<blockquote>
<p>My low-privileged account absorbed the owner’s email identity, and the system responded by <strong>de-escalating the real owner’s privileges</strong>.</p>
</blockquote>
<p>This was not just account takeover.</p>
<p>This was <strong>forced privilege de-escalation through identity rebinding</strong>.</p>
<h2 id="heading-why-this-works-root-cause">Why this works (root cause)</h2>
<p>This issue exists at the intersection of <strong>identity</strong>, <strong>authorization</strong>, and <strong>business logic</strong>.</p>
<p>The backend made several critical assumptions:</p>
<ol>
<li><p><strong>Email fields were treated as editable profile data</strong><br /> Instead of protected identity attributes.</p>
</li>
<li><p><strong>No uniqueness enforcement</strong><br /> The system did not block assigning an email already associated with another user.</p>
</li>
<li><p><strong>No email ownership verification</strong><br /> No confirmation link, no challenge, no secondary approval.</p>
</li>
<li><p><strong>Implicit trust in client input</strong><br /> If the client sent <code>primaryemail</code>, the server accepted it.</p>
</li>
</ol>
<p>Once the system allowed email rebinding, the rest of the failure cascaded naturally — identity collision, role confusion, and privilege loss.</p>
<h2 id="heading-why-this-is-critical">Why this is critical</h2>
<p>This vulnerability allows:</p>
<ul>
<li><p>Forced <strong>owner privilege de-escalation</strong></p>
</li>
<li><p>Effective <strong>reverse</strong> <strong>account takeover without authentication</strong></p>
</li>
<li><p>Workspace lockout of legitimate administrators</p>
</li>
</ul>
<p>From a risk perspective, this is catastrophic in a SaaS environment. A single low-privileged user can disrupt or seize control of an entire tenant.</p>
<h2 id="heading-lessons-learned">Lessons learned</h2>
<p>This bug wasn’t about missing authentication or weak crypto. It was about <strong>trust boundaries</strong>.</p>
<p>If a field defines <em>who a user is</em>, it must never be treated like <em>what a user prefers</em>.</p>
<p>From a testing perspective, this reinforces a key mindset:</p>
<blockquote>
<p>Always test what the backend accepts — not just what the UI exposes.</p>
</blockquote>
<h2 id="heading-responsible-disclosure">Responsible disclosure</h2>
<p>This issue was responsibly disclosed to the client, validated by their engineering team, and fixed. No real user data was harmed.</p>
<h2 id="heading-final-thoughts">Final thoughts</h2>
<p>Modern applications are complex systems where identity, authorization, and state management intersect. Bugs like this don’t look dangerous at first glance — but their impact can be devastating.</p>
<p>Sometimes, breaking security isn’t about breaking in.</p>
<p>It’s about <strong>changing who the system thinks you are</strong>.</p>
]]></content:encoded></item><item><title><![CDATA[Guide to install Game of Active Directory (GOAD) on VMware_ESXI]]></title><description><![CDATA[Good day Mates!For quite some time, I have been intending to address this matter, albeit various commitments have continuously impeded its realization.
Requirements
For GOAD installation on ESXI you need to download the following tools

create an ubu...]]></description><link>https://z-sec.co/guide-to-install-game-of-active-directory-goad-on-vmwareesxi</link><guid isPermaLink="true">https://z-sec.co/guide-to-install-game-of-active-directory-goad-on-vmwareesxi</guid><category><![CDATA[Game of active directory]]></category><category><![CDATA[GOAD]]></category><category><![CDATA[redteaming]]></category><category><![CDATA[Active Directory]]></category><category><![CDATA[pentesting]]></category><category><![CDATA[hacking]]></category><dc:creator><![CDATA[Zeeshan M.]]></dc:creator><pubDate>Wed, 20 Mar 2024 07:38:02 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1710919685294/45bb1d67-6bbb-4263-bb21-401e0d9fbd8c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good day Mates!<br />For quite some time, I have been intending to address this matter, albeit various commitments have continuously impeded its realization.</p>
<p><strong>Requirements</strong></p>
<p><strong>For GOAD installation on ESXI you need to download the following tools</strong></p>
<ol>
<li><p>create an ubuntu machine on ESXI server</p>
</li>
<li><p>ovftool —&gt; install it on the ubuntu machine</p>
</li>
<li><p>pywinrm and ansible —&gt; install it on the ubuntu machine</p>
</li>
<li><p>winrm —&gt; install it on the ubuntu machine</p>
</li>
<li><p>winrm-fs —&gt; install it on the ubuntu machine</p>
</li>
<li><p>winrm-elevated —&gt; install it on the ubuntu machine</p>
</li>
<li><p>GOAD repository</p>
</li>
</ol>
<p><strong>STEP 1</strong></p>
<p><strong>Vagrant installation on Ubuntu Machine</strong></p>
<ol>
<li><p><code>mkdir tools</code></p>
</li>
<li><p><code>cd tools</code></p>
</li>
<li><p><code>wget</code><a target="_blank" href="https://releases.hashicorp.com/vagrant/2.3.7/vagrant_2.3.7-1_amd64.deb"><code>https://releases.hashicorp.com/vagrant/2.3.7/vagrant_2.3.7-1_amd64.deb</code></a></p>
</li>
<li><p><code>dpkg -i vagrant_2.3.7-1_amd64.deb</code></p>
</li>
</ol>
<p><strong>STEP 2</strong></p>
<p><strong>install vagrant vmware esxi plugins</strong></p>
<ol>
<li><p><code>vagrant plugin install vagrant-vmware-esxi</code></p>
</li>
<li><p><code>vagrant plugin install vagrant-reload</code></p>
</li>
<li><p><code>vagrant plugin install vagrant-vmware-desktop</code></p>
</li>
<li><p><code>vagrant plugin install winrm</code></p>
</li>
<li><p><code>vagrant plugin install winrm-fs</code></p>
</li>
<li><p><code>vagrant plugin install winrm-elevated</code></p>
</li>
</ol>
<p><strong>install Ansible and pywinrm</strong></p>
<ol>
<li><p><code>pip3 install --include-deps ansible</code></p>
</li>
<li><p><code>pip3 install ansible-core</code></p>
</li>
<li><p><code>pip3 install ansible-core==2.12.3</code></p>
</li>
<li><p><code>pip3 install pywinrm</code></p>
</li>
</ol>
<p><strong>STEP 3</strong></p>
<p><strong>Download the Goad repository from the Github and configure some initial files for vmware_esxi compatibility</strong></p>
<p><code>git clone</code><a target="_blank" href="https://github.com/Orange-Cyberdefense/GOAD"><code>https://github.com/Orange-Cyberdefense/GOAD</code></a></p>
<p><code>in this directory GOAD/ansible install the “requirements.yml” file using the following command —&gt; ansible-galaxy install -r ansible/requirements.yml</code></p>
<p><strong>STEP 4</strong></p>
<p>In the main directory of the “GOAD” remove the previous goad.sh file and use the provided <a target="_blank" href="https://github.com/zeeshanm0x0/GOAD-config/blob/main/goad.sh">goad.sh</a> file and replace the old file with this new one provided file.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710917636256/3b924b69-af63-4d52-b465-6af71f0dd790.png" alt class="image--center mx-auto" /></p>
<p>Create a directory called “vmware_esxi” in this directory → “/GOAD/ad/GOAD-Light/providers”</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710917682971/6320a994-de24-4889-aef9-1bc148855875.png" alt class="image--center mx-auto" /></p>
<p>Now we have the directory called “/GOAD/ad/GOAD-Light/providers/vmware_esxi”</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710917714356/03346b40-4b2a-4067-92df-ba2203396ca7.png" alt class="image--center mx-auto" /></p>
<p><strong>STEP 5</strong></p>
<p>Now go back to the main GOAD directory and run the goad.sh</p>
<p>Now run the <a target="_blank" href="http://goad.sh">goad.sh</a> using the follwing command:</p>
<p><code>bash</code><a target="_blank" href="http://goad.sh"><code>goad.sh</code></a><code>-t check -l GOAD-LIGHT -p vmware_esxi -m local</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710917776201/0801a2b9-756e-4c7f-9f6c-8944e72fe12c.png" alt class="image--center mx-auto" /></p>
<p>→ 2 file will be generated they will be Vagrantfile and inventory</p>
<p>→ Replace these two files with these <a target="_blank" href="https://github.com/zeeshanm0x0/GOAD-config/blob/main/Vagrantfile">Vagrantfile</a> &amp; <a target="_blank" href="https://github.com/zeeshanm0x0/GOAD-config/blob/main/inventory">inventory</a> in the "/GOAD/ad/GOAD-Light/providers/vmware_esxi" directory.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710917930501/5b3e8b09-da31-4314-8ff7-40bfee282fbd.png" alt class="image--center mx-auto" /></p>
<p>Note: if you want to change the ips of DC01, DC02, SRV02 you have to change the ips inside the inventory file too. This will be used with ansible-playbook while installing the vulnerable AD-set.</p>
<p><strong>STEP 6</strong></p>
<p><strong>Install the OVFTOOL in the ubuntu machine</strong></p>
<p>Since our ESXI version is 8.0.2 we will download the latest version of ovftool which is “v4.6.2” from “https://developer.vmware.com/web/tool/4.6.2/ovf-tool/<a target="_blank" href="http://developer.vmware.com/web/tool/4.6.2/ovf-tool/%E2%80%9D">”</a></p>
<p>download-Link with the wget command :</p>
<p><code>wget</code><a target="_blank" href="https://vdc-download.vmware.com/vmwb-repository/dcr-public/8a93ce23-4f88-4ae8-b067-ae174291e98f/c609234d-59f2-4758-a113-0ec5bbe4b120/VMware-ovftool-4.6.2-22220919-lin.x86_64.zip"><code>https://vdc-download.vmware.com/vmwb-repository/dcr-public/8a93ce23-4f88-4ae8-b067-ae174291e98f/c609234d-59f2-4758-a113-0ec5bbe4b120/VMware-ovftool-4.6.2-22220919-lin.x86_64.zip</code></a></p>
<p><code>Unzip the ovftool file by the follwing command</code></p>
<p><code>unzip VMware-ovftool-4.6.2-22220919-lin.x86_</code><a target="_blank" href="http://64.zip"><code>64.zip</code></a></p>
<p><code>echo $PATH</code></p>
<p><code>cd ovftool</code></p>
<p><code>pwd</code></p>
<p><code>export PATH=/home/management/tools/ovftool:/home/management/.local/bin:/usr/local/sbin:/usr/local/bin:/ usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710918175321/9723478f-d021-40f8-a463-5c52d834b9de.png" alt class="image--center mx-auto" /></p>
<p><strong>STEP 7</strong></p>
<p><strong>Configuring the IP addresses automatically assigned by the vagrant in the provisioning files</strong></p>
<p>Go to the following directory and configure the IP addresses → “/GOAD/ad/GOAD-Light/providers/vmware_esxi”</p>
<p>edit the files as in the screenshots</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710918941399/96eb9ed0-ca0b-4e5e-90bc-6b9c4126bea9.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710918964773/f7d733df-f862-4ad8-b390-69dcad3796d1.png" alt class="image--center mx-auto" /></p>
<p><strong>STEP 8</strong></p>
<p><strong>DEPLOYING WINDOWS ACTIVE DIRECTORY MACHINES ON ESXI sever</strong></p>
<p>Go to the following directory “ad/GOAD-Light/providers/vmware_esxi/” Then run the follwing command: vagrant up</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710918299961/17eab93c-2a71-4bb8-b7e8-67955d1d09bd.png" alt class="image--center mx-auto" /></p>
<p>check the adapters of the machines deployed using the vagrant up command</p>
<p>POC of the network adapter of the ubuntu machine</p>
<p>Ubuntu Machine is on the same network as the DCO1 Adapters</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710918410437/a4df7514-eca5-44ab-93ba-52a0f187947d.png" alt class="image--center mx-auto" /></p>
<p>POC: we don't need to change the adapters in order for the provisioning to work properly both of the adapters should be on the same network like in the following screenshots</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710918433073/6968438f-63e2-4179-b035-248bb24a4901.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1710918553945/c949114a-20d5-400a-9164-f51187f7fbad.png" alt class="image--center mx-auto" /></p>
<p>This is the network scheme of all the machines</p>
<p><strong>Important Note:</strong> Goad provisioning file considering Ethernet0 as the domain adapter and Ethernet1 as the NAT adapter. We will configure the domain adapter IP addresses in the inventory and the Vagrant file before provisioning.</p>
<p><code>DCO1</code></p>
<p><code>Ethernet adapter Ethernet0: IPv4 Address. . . . . . . . . . . : 172.70.0.70</code></p>
<p><code>Ethernet adapter Ethernet1: IPv4 Address. . . . . . . . . . . : 172.70.0.71</code></p>
<p><code>DC02</code></p>
<p><code>Ethernet adapter Ethernet0: IPv4 Address. . . . . . . . . . . : 172.70.0.74</code></p>
<p><code>Ethernet adapter Ethernet1: IPv4 Address. . . . . . . . . . . : 172.70.0.75</code></p>
<p><code>SRV02</code></p>
<p><code>Ethernet adapter Ethernet0: IPv4 Address. . . . . . . . . . . : 172.70.0.68</code></p>
<p><code>Ethernet adapter Ethernet1: IPv4 Address. . . . . . . . . . . : 172.70.0.69</code></p>
<p><strong>STEP 9</strong></p>
<p><strong>Start the provisioning using the ansible</strong></p>
<p>Go to the following directory “/GOAD/ansible”</p>
<p>Run the following command before provisioning:</p>
<p><code>export ANSIBLE_COMMAND="ansible-playbook -i ../ad/GOAD-Light/data/inventory -i ../ad/GOAD-Light/ providers/vmware_esxi/inventory"</code></p>
<p>Run the following command to run the provisioning: <code>../scripts/provisionning.sh</code></p>
<p>Special Thanks to my friend <a target="_blank" href="https://www.linkedin.com/in/syed-a-b48906230">Syed Asadullah</a> for the help especially in networking part he has done a great job.</p>
]]></content:encoded></item><item><title><![CDATA[Exploring OSINTLEAK: Unraveling the Power of Enhanced OSINT Capabilities]]></title><description><![CDATA[Howdy mates,
I wanted to write a short blog on OSINTLEAK, which is a very powerful OSINT platform. Unlike Dehashed, it has a larger database of leak contents, making it very useful for bug hunters, penetration testers, and red teamers. It offers nume...]]></description><link>https://z-sec.co/exploring-osintleak-unraveling-the-power-of-enhanced-osint-capabilities</link><guid isPermaLink="true">https://z-sec.co/exploring-osintleak-unraveling-the-power-of-enhanced-osint-capabilities</guid><category><![CDATA[#DataLeaks]]></category><category><![CDATA[#BugHunting]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[infosec]]></category><category><![CDATA[#CyberThreats]]></category><category><![CDATA[penetration testing]]></category><category><![CDATA[redteaming]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[OSINT]]></category><category><![CDATA[threat intelligence]]></category><category><![CDATA[digital security]]></category><dc:creator><![CDATA[Zeeshan M.]]></dc:creator><pubDate>Fri, 16 Feb 2024 00:22:11 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1708042115487/77a9f47f-bcf8-4a9d-874b-65b9d5cf9c8f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Howdy mates,</p>
<p>I wanted to write a short blog on <a target="_blank" href="https://osintleak.com/">OSINTLEAK</a>, which is a very powerful OSINT platform. Unlike <a target="_blank" href="https://dehashed.com/">Dehashed</a>, it has a larger database of leak contents, making it very useful for bug hunters, penetration testers, and red teamers. It offers numerous amazing search filters that allow you to find your desired results.</p>
<p>The pricing is very affordable, and it provides better and more results. I have personally used <a target="_blank" href="http://osintleak.com">osintleak.com</a> for bug hunting and penetration testing projects, and I can say it was very helpful for me. It's a great and affordable investment, and I liked it better than <a target="_blank" href="http://dehashed.com">dehashed.com</a>. This is not a promotional blog post; I just wanted to share my experience with you all.</p>
<p>The first menu is about the type of filter you want to search for. You can search with a username, email, URL, phone number, IP address, first name, last name, credit card number, credit card name, and others.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1708039075933/5f7166dd-8fd6-45b1-b418-b8114985091d.png" alt class="image--center mx-auto" /></p>
<p>The second option is the database option. You can select any specific database or choose all, which means it will search all three leaked databases for your queries.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1708039208920/03198faf-11e0-41db-bcc0-9c49b414207a.png" alt class="image--center mx-auto" /></p>
<p>The third option is the date option. It will search based on the provided date, and by default, it's set from 2001 to 2024.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1708039407835/9439e01f-0f55-4270-9b22-31b97533c8c1.png" alt class="image--center mx-auto" /></p>
<p>The fourth option is the country filter. You can select all countries for better results.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1708039388437/6ec57166-2d4a-45cb-924c-346a800380e5.png" alt class="image--center mx-auto" /></p>
<p>The fifth and sixth options are the interesting search filters. The first quick search will search for the exact word you enter, and the similar option is a very interesting one which will search for the word you entered and find similar results. The best example is for the URL section. If you type "tesla," it will search all the subdomains of <a target="_blank" href="http://xxx.uber.xxx">xxx.tesla.xxx</a> and other similar results, including usernames and passwords.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1708041369812/6282fa4f-dc69-47b4-8f50-101b08e9b2ab.png" alt class="image--center mx-auto" /></p>
<p>In conclusion, OSINTLEAK stands out as a valuable asset for individuals and teams engaged in cybersecurity endeavors. Its comprehensive database, powerful search filters, and affordability make it a go-to choice for bug hunters, penetration testers, and red teamers alike. As you delve into the realm of OSINT exploration, remember to utilize these tools responsibly and ethically, respecting privacy and legal boundaries. With OSINTLEAK at your fingertips, the possibilities for uncovering valuable insights and fortifying digital defenses are boundless. Happy hunting!</p>
]]></content:encoded></item><item><title><![CDATA[Hacking Admin Panel & Getting free subscription]]></title><description><![CDATA[Note: For maintaining the program's privacy I won't disclose the program.
So, a few months back I and Haseeb were hunting on a private program and the program is a services-based company that has paid services only. So the program had very limited as...]]></description><link>https://z-sec.co/hacking-admin-panel-getting-free-subscription</link><guid isPermaLink="true">https://z-sec.co/hacking-admin-panel-getting-free-subscription</guid><category><![CDATA[hacking]]></category><category><![CDATA[admin panel]]></category><category><![CDATA[bugbounty]]></category><category><![CDATA[bugbountytips]]></category><category><![CDATA[hackerone]]></category><dc:creator><![CDATA[Zeeshan M.]]></dc:creator><pubDate>Wed, 29 Mar 2023 22:24:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1768597162191/40c03813-3536-4e11-b990-4d6446737ace.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Note: For maintaining the program's privacy I won't disclose the program.</p>
<p>So, a few months back <a target="_blank" href="https://www.linkedin.com/in/zeeshanm0x0/">I</a> and <a target="_blank" href="https://www.linkedin.com/in/haseeb-tofiq/">Haseeb</a> were hunting on a private program and the program is a services-based company that has paid services only. So the program had very limited assets in scope and most of them were redirected back to the main domain then we used the main domain and checked every functionality we tried every possible way to manipulate the payment method to get the subscription free of cost and we were able to get the services free of cost by providing negative value but due to bad luck someone had reported this before us and it was marked as duplicate. So getting duplicate motivated us to dig deeper instead of de-motivating and this time we were confident enough that we could get critical vulnerability.</p>
<p>By changing our hunting methodology we focused on this program in the opposite way we collected their in-scope assets and then saved them in a txt file as url.txt and ran "<a target="_blank" href="https://github.com/zeeshanm0x0/x-officers">x-officers.py</a>" script to quickly collect js files and then search for custom words in those js files luckily we found a dev portal which was "29dev-api-x.target.com" note 29 is not the exact number <a target="_blank" href="https://emojipedia.org/face-with-tongue/">😛</a> after visiting the URL it prompts us with a login page and after checking their js files we found a registration API and we successfully registered an account via the API with defined parameters. After a successful login, we had access to their developer portal but it had very few functions not very useful according to my experience I felt that there would be an admin panel with lots of working functions so the next step was to find the admin panel. I love FFUF since it's very handy in terms of fuzzing so we found "qa-admin-api.target.com" with a status code of 301 which was redirecting back to the login panel with curl.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680125544680/a860996f-e993-418d-bdde-4c6af782aabe.png" alt class="image--center mx-auto" /></p>
<p>But as we were authenticated inside "29dev-api-x.target.com" our session was valid for the admin panel too because of the Authorization header which contained our JWT by the way we found multiple JWT issues but I won't cover that in this article. But we faced another issue "Access Denied" there were several menu none was working because we were not an admin our account was from the developer portal, not an admin account. In the incognito window, we opened the admin panel which prompts us with a login panel and we started to analyze the js files I was hoping for registration API and we could find any mentioned API.</p>
<p>On the authenticated admin panel window I opened chrome's developer tools and in the application tab I was checking the cookies section was had some rubbish and useless parameters and their values not useful but after checking the Local Storage section I found the GEM there were some parameters like "currentuser" and "current_user_role" now the fun parts begin, as it's visible in the below screenshot that the "currentuser" parameter has my account's details and the "current_user_role" has the value of "IsAdmin:false" means my role was not admin role by changing the "IsAdmin:false" to "IsAdmin:true" and refreshing the page I was able to use the admin panel so I escalated my privileges to admin then we browsed all the pages and options and then found the subscription section and we were able to enable paid services for our account on "target.com" and to delete other user's subscription and do other malicious things. Wink Wink</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1680124996414/7c973218-a429-47d2-98b9-d39c322e27b3.jpeg" alt class="image--center mx-auto" /></p>
<h2 id="heading-another-method">Another method</h2>
<p>I guess some of you might think that why we didn't try to register an account on the admin panel with the previously found API URL you are right after performing the above trick we tried to register an account on the admin panel with the same API path and parameters and by adding another parameter "admin" to true.</p>
<h3 id="heading-http-request-and-api-url">HTTP request and API URL</h3>
<p><strong>Developer portal:</strong></p>
<p>POST /api/user/register HTTP/1.1</p>
<p>Host: 29dev-api-x.target.com</p>
<p>user-agent**:** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36</p>
<p>Content-Type: application/json</p>
<p>{"username":"test1337","email":"qjimyhwekglh@mymail.com","fname":"george","lname":"frankmiller","password":"Test@123$"}</p>
<p><strong>Admin Panel:</strong></p>
<p>POST /api/user/register HTTP/1.1</p>
<p>Host: qa-admin-api.target.com</p>
<p>user-agent**:** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36</p>
<p>Content-Type: application/json</p>
<p>{"username":"test2","email":"email@email.com","fname":"george","lname":"frankmiller","password":"Test@123$", "admin":"true"}</p>
<p><strong>FFUF command:</strong></p>
<p>ffuf -u https://FUZZ.target.com/ -w /usr/share/wordlists/SecLists/Discovery/DNS/dns-Jhaddix.txt</p>
<h2 id="heading-takeaways-amp-recommendations">Takeaways &amp; recommendations</h2>
<p>1: Use the application as a normal person and observe all the functionalities.</p>
<p>2: If you get any subscription section do a test for price manipulation with every possible method.</p>
<p>3: Don't get de-motivated if your submission gets duplicated or if you don't find any vulnerability it's a part of this game.</p>
<p>4: Always try at least two different methodologies for hunting your target program.</p>
<p>5: Analyze JS files you never know what's in there so keep your eyes on every JS file.</p>
<p>6: Always test for parameters like admin or role or priv and give admin as value most of the time it works and you can register an admin account.</p>
<p>7: Check for parameters like "isadmin" or other similar things and changing their value to the opposite of that value.</p>
<p>8: Link of <a target="_blank" href="https://github.com/zeeshanm0x0/x-officers">X-Officers.py</a></p>
]]></content:encoded></item><item><title><![CDATA[Certified Red Team Professional (CRTP) - Review]]></title><description><![CDATA[Hey All, this blog post is a review of CRTP certification by alteredsecurity which is one of the greatest certifications on red teaming and Active Directory pen-testing.
If you want to learn or sharpen your Active Directory penetration testing skills...]]></description><link>https://z-sec.co/certified-red-team-professional-crtp-review</link><guid isPermaLink="true">https://z-sec.co/certified-red-team-professional-crtp-review</guid><category><![CDATA[ethicalhacking]]></category><category><![CDATA[red team]]></category><category><![CDATA[CRTP]]></category><category><![CDATA[alteredsecurity]]></category><category><![CDATA[redteaming]]></category><dc:creator><![CDATA[Zeeshan M.]]></dc:creator><pubDate>Fri, 03 Mar 2023 23:18:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1677881797376/e0a7b0c6-372e-4a22-9058-795b9cbafcb8.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey All, this blog post is a review of CRTP certification by <a target="_blank" href="https://alteredsecurity.com">alteredsecurity</a> which is one of the greatest certifications on red teaming and Active Directory pen-testing.</p>
<p>If you want to learn or sharpen your Active Directory penetration testing skills then this course is a gem for you. Before CRTP I did PNPT certification by TCM-Security and I'm a PNPT certified PNPT cleared my concept of Active Directory pen-testing mostly attacking the AD environment from Linux but CRTP is more focused on pen-testing AD with Windows Powershell which is a bit boring in the starting but when you start using Powershell it gets interesting.</p>
<p>The course content of CRTP is a complete guide to pentest an AD environment it includes everything you need to perform in your AD pentest. Before attempting the CRTP exam I studied the course contents and did some labs and got a good grip on using PowerShell and PowerShell scripts for enumerating the AD environment like Powerview, powerup and others so I got an internal Pentesting project including their Active Directory environment and I used all of the techniques I learned from CRTP course indeed I can say it was really helpful the pen-testing project was like the CRTP labs I became a Domain Admin in 2 days of pentest most of the techniques and methodologies explained in CRTP are based on the real-world environment it not just like any other CTF type exam. The exam was really hard and realistic and I enjoyed a lot solving the exam machines I'm a fan of the exam machines they were great and challenging and you will find most of the explained topics in the exam machine so I would like to suggest that don't skip any topic in the course all are important and necessary to watch if you skip any of them you might miss the important part and on the exam day you may face some issues regarding the attacks. So Long story short The course material is enough to learn and practice but if you want to learn more and practice AD pentest and different attacks or exploiting misconfigurations on the AD environment then try <a target="_blank" href="https://tryhackme.com/module/hacking-active-directory">tryhackme's</a> Active Directory modules as well besides this.</p>
<p>I do appreciate Altered security and Nikhil Mittal for this amazing course and I do highly recommend CRTP if you want to learn Active Directory pen-testing. Their course contents and labs plus exam labs are based on real-world environments, not just CTF-type machines.</p>
]]></content:encoded></item><item><title><![CDATA[Mass Account takeover by bypassing 2 FA]]></title><description><![CDATA[Hey fellow hackers,
I'm not gonna bore you with a long story of this pentest project. Last month I was working on a Pen-testing project and I found multiple critical & high vulnerabilities and I'll cover the interesting findings only. I won't share t...]]></description><link>https://z-sec.co/mass-account-takeover</link><guid isPermaLink="true">https://z-sec.co/mass-account-takeover</guid><category><![CDATA[Ethical Hacking]]></category><category><![CDATA[hacking]]></category><category><![CDATA[pentesting]]></category><category><![CDATA[account takeover]]></category><category><![CDATA[2fa bypass]]></category><dc:creator><![CDATA[Zeeshan M.]]></dc:creator><pubDate>Tue, 31 Jan 2023 11:34:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1768597354826/39ee1690-9d1a-4ebe-8413-a7a824ab05cb.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey fellow hackers,</p>
<p>I'm not gonna bore you with a long story of this pentest project. Last month I was working on a Pen-testing project and I found multiple critical &amp; high vulnerabilities and I'll cover the interesting findings only. I won't share the name of the application let's assume it's redacted.com it has multiple subdomains but my focus was on the main domain. So, on the main domain, it has a login portal and from there users and admins can login to their dashboard. It was a grey box Pen-testing I tried to login as an admin with the admin credential and it was a successful login but it asked for the OTP since 2fa is enabled just for the admin, not for normal users. So, upon successful login it asks for OTP in the new HTTP request it asked only for userID and the parameter was OTPUserId=5 digit numbers by replacing this userId I was able to login to another user account and it wasn't validating the LoginOTP parameter. Later I found that without authentication just by sending a post request to that endpoint with the parameter "OTPUserId" and "LoginOTP" I was able to login just by providing anyone's userid.</p>
<p>Note: later I found that the same HTTP request plus parameter was already in their javascript file as an attacker without having any credentials I was able to login into anyone's account.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1675167092004/6b69f7e9-10a4-46ad-98e2-1b9ad8014c9e.png" alt class="image--center mx-auto" /></p>
<p>As you can see in the above Screenshot just by providing userid I was able to login into anyone's account. The first part is finished here.</p>
<h1 id="heading-admin-account-creation-with-normal-user">Admin account creation with normal user</h1>
<p>So in the first part, you can see that an attacker was able to login into anyone's account without a username and password just by typing random userID. So after authentication into any user's account, I was able to navigate to the admin panel by just visiting https://redacted.com/admin/dashboard from there most of the admin functionalities were accessible and the interesting one was the "User Management" section I was able to create users with custom roles either admin or normal user and I created an admin account just for the testing purpose it was working I was admin without credential I was able to create an admin account and then take over the whole admin panel.</p>
<h3 id="heading-things-to-remember">Things to remember</h3>
<p>By reading their Js code I was able to login into anyone's account without credentials and then I found that "/admin/dashboard" was accessible for authenticated users but doesn't check if the user is an admin or a normal user and then from "User Management" section I was able to create admin account.</p>
<p><strong>./exit</strong></p>
]]></content:encoded></item></channel></rss>