<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Phat Mai Blog</title>
    <link>https://blog.pzhat.id.vn/</link>
    <description>Recent content on Phat Mai Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 10 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.pzhat.id.vn/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>About</title>
      <link>https://blog.pzhat.id.vn/about/</link>
      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.pzhat.id.vn/about/</guid>
      <description>&lt;h1 id=&#34;whoami&#34;&gt;$&lt;em&gt;Whoami&lt;/em&gt;$&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pentester | Red Team Operator | Security Researcher&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;-about-me&#34;&gt;🎯 About Me&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m a passionate cybersecurity professional specializing in penetration testing and red team operations. With a keen eye for vulnerabilities and a love for breaking (and fixing) things, I help organizations strengthen their security posture.&lt;/p&gt;
&lt;p&gt;When I&amp;rsquo;m not hunting for vulnerabilities, you&amp;rsquo;ll find me writing technical blog posts, participating in CTF competitions, and contributing to the security community.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CVE-2026-1581 WordPress wpForo Forum Plugin is vulnerable to a high priority SQL Injection</title>
      <link>https://blog.pzhat.id.vn/posts/2026-21-02-cve-2026-1581/</link>
      <pubDate>Wed, 31 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-21-02-cve-2026-1581/</guid>
      <description>&lt;h1 id=&#34;cve-2026-1581-wordpress-wpforo-forum-plugin-is-vulnerable-to-a-high-priority-sql-injection&#34;&gt;CVE-2026-1581 WordPress wpForo Forum Plugin is vulnerable to a high priority SQL Injection&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/BJipTiSdbe.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-02-19
&lt;strong&gt;CVE-ID:&lt;/strong&gt; CVE-2026-1581
&lt;strong&gt;CVSS:&lt;/strong&gt; 7.5
&lt;strong&gt;Affected Plugin:&lt;/strong&gt; WordPress wpForo Forum Plugin
&lt;strong&gt;Affected Versions:&lt;/strong&gt; &amp;lt;= 2.4.14
&lt;strong&gt;Vulnerability Type:&lt;/strong&gt; High priority SQL Injection
&lt;strong&gt;CWE:&lt;/strong&gt; CWE-89 Improper Neutralization of Special Elements used in an SQL Command.&lt;/p&gt;
&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;wpForo Forum plugin&lt;/strong&gt; for WordPress is vulnerable to &lt;strong&gt;time-based SQL Injection&lt;/strong&gt; via the &lt;strong&gt;&amp;lsquo;wpfob&amp;rsquo;&lt;/strong&gt; parameter in &lt;strong&gt;all versions&lt;/strong&gt; up to, and including, 2.4.14 due to &lt;strong&gt;insufficient escaping&lt;/strong&gt; on the user supplied parameter and &lt;strong&gt;lack of sufficient preparation&lt;/strong&gt; on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CVE-2026-0702 WordPress VidShop Plugin &lt;= 1.1.4 is vulnerable to a high priority SQL Injection</title>
      <link>https://blog.pzhat.id.vn/posts/2026-14-02-cve-2026-0702/</link>
      <pubDate>Tue, 30 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-14-02-cve-2026-0702/</guid>
      <description>&lt;h1 id=&#34;cve-2026-0702-wordpress-vidshop-plugin--114-is-vulnerable-to-a-high-priority-sql-injection&#34;&gt;CVE-2026-0702 WordPress VidShop Plugin &amp;lt;= 1.1.4 is vulnerable to a high priority SQL Injection&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/rkhOvm9vWg.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;vidshop-plugin-vulnerable-to-sql-injection&#34;&gt;VidShop Plugin Vulnerable to SQL Injection&lt;/h1&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-01-28&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVE-ID:&lt;/strong&gt; CVE-2026-0702&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVSS:&lt;/strong&gt; 7.5 High&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected Plugin:&lt;/strong&gt; VidShop Plugin&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected Versions:&lt;/strong&gt;  &amp;lt;= 1.1.4&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulnerability Type:&lt;/strong&gt; High priority SQL Injection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CWE:&lt;/strong&gt; CWE-89 Improper Neutralization of Special Elements used in an SQL Command&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;
&lt;p&gt;The VidShop – Shoppable Videos for WooCommerce plugin for WordPress is vulnerable to time-based SQL Injection via the &amp;lsquo;fields&amp;rsquo; parameter in all versions up to, and including, 1.1.4 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CVE-2026-23550 WordPress Modular DS Plugin &lt;= 2.5.1 is vulnerable to a high priority Privilege Escalation</title>
      <link>https://blog.pzhat.id.vn/posts/2026-11-02-cve-2026-23550/</link>
      <pubDate>Mon, 29 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-11-02-cve-2026-23550/</guid>
      <description>&lt;h1 id=&#34;cve-2026-23550-wordpress-modular-ds-plugin--251-is-vulnerable-to-a-high-priority-privilege-escalation&#34;&gt;CVE-2026-23550 WordPress Modular DS Plugin &amp;lt;= 2.5.1 is vulnerable to a high priority Privilege Escalation&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/HyLArhXPZg.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;wordpress-modular-ds-plugin-privilege-escalation-vulnerability&#34;&gt;WordPress Modular DS Plugin Privilege Escalation Vulnerability&lt;/h1&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-01-14&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVE-ID:&lt;/strong&gt; CVE-2026-23550&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVSS:&lt;/strong&gt; 10.0 Critical (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected Plugin:&lt;/strong&gt; WordPress Modular DS Plugin&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected Versions:&lt;/strong&gt; &amp;lt;= 2.5.1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulnerability Type:&lt;/strong&gt; High priority Privilege Escalation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CWE:&lt;/strong&gt; CWE-266 Incorrect Privilege Assignment&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;
&lt;p&gt;Incorrect Privilege Assignment vulnerability in Modular DS allows Privilege Escalation.This issue affects Modular DS: from n/a through 2.5.1.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CVE-2026-3459 WordPress Drag and Drop Multiple File Upload – Contact Form 7 Plugin &lt;= 1.3.9.5 is vulnerable to a high priority Arbitrary File Upload</title>
      <link>https://blog.pzhat.id.vn/posts/2026-04-05-cve-2026-3459/</link>
      <pubDate>Sun, 28 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-04-05-cve-2026-3459/</guid>
      <description>&lt;h2 id=&#34;cve-2026-3459-wordpress-drag-and-drop-multiple-file-upload--contact-form-7-plugin--1395-is-vulnerable-to-a-high-priority-arbitrary-file-upload&#34;&gt;CVE-2026-3459 WordPress Drag and Drop Multiple File Upload – Contact Form 7 Plugin &amp;lt;= 1.3.9.5 is vulnerable to a high priority Arbitrary File Upload&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/BJZCp2osbl.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-03-05
&lt;strong&gt;CVE-ID:&lt;/strong&gt; CVE-2026-3459
&lt;strong&gt;CVSS:&lt;/strong&gt; 8.1 High
&lt;strong&gt;Affected Plugin:&lt;/strong&gt; Drag and Drop Multiple File Upload – Contact Form 7 Plugin
&lt;strong&gt;Affected Versions:&lt;/strong&gt; &amp;lt;= 1.3.9.5
&lt;strong&gt;Vulnerability Type:&lt;/strong&gt; Arbitrary File Upload
&lt;strong&gt;CWE:&lt;/strong&gt; CWE-434 Unrestricted Upload of File with Dangerous Type&lt;/p&gt;
&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;
&lt;p&gt;The Drag and Drop Multiple File Upload - Contact Form 7 plugin for WordPress is vulnerable to arbitrary file uploads due to insufficient file type validation in the &lt;code&gt;&#39;dnd_upload_cf7_upload&#39;&lt;/code&gt; function in versions up to, and including, &lt;code&gt;1.3.7.3&lt;/code&gt;. This makes it possible for unauthenticated attackers to upload arbitrary files on the affected site&amp;rsquo;s server which may make remote code execution possible. This can be exploited if the form includes a multiple file upload field with ‘*’ as the accepted file type.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CVE-2026-2511 WordPress JS Help Desk Plugin &lt;= 3.0.4 is vulnerable to a high priority SQL Injection</title>
      <link>https://blog.pzhat.id.vn/posts/2026-04-02-cve-2026-2511/</link>
      <pubDate>Sat, 27 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-04-02-cve-2026-2511/</guid>
      <description>&lt;h1 id=&#34;cve-2026-2511-js-help-desk--ai-powered-support--ticketing-system--304---unauthenticated-sql-injection-via-multiformid-parameter&#34;&gt;CVE-2026-2511 JS Help Desk – AI-Powered Support &amp;amp; Ticketing System &amp;lt;= 3.0.4 - Unauthenticated SQL Injection via &amp;lsquo;multiformid&amp;rsquo; Parameter&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/Hkvne0ds-g.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-03-26
&lt;strong&gt;CVE-ID:&lt;/strong&gt; CVE-2026-2511
&lt;strong&gt;CVSS:&lt;/strong&gt; 7.5 High
&lt;strong&gt;Affected Plugin:&lt;/strong&gt; JS Help Desk – AI-Powered Support &amp;amp; Ticketing System
&lt;strong&gt;Affected Versions:&lt;/strong&gt; &amp;lt;= 3.0.4
&lt;strong&gt;Vulnerability Type:&lt;/strong&gt; Unauthenticate SQL Injection
&lt;strong&gt;CWE:&lt;/strong&gt; CWE-89 Improper Neutralization of Special Elements used in an SQL Command&lt;/p&gt;
&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;JS Help Desk – AI-Powered Support &amp;amp; Ticketing System&lt;/strong&gt; plugin for WordPress is vulnerable to &lt;strong&gt;SQL Injection&lt;/strong&gt; via the &lt;code&gt;multiformid&lt;/code&gt; parameter in the &lt;code&gt;storeTickets()&lt;/code&gt; function in all versions up to, and including, 3.0.4. This is due to the user-supplied &lt;code&gt;multiformid&lt;/code&gt; value being passed to &lt;code&gt;esc_sql()&lt;/code&gt; without enclosing the result in quotes in the SQL query, rendering the escaping ineffective against payloads that do not contain quote characters. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CVE-2026-2232 Product Table and List Builder for WooCommerce Lite Vulnerable To Unauthenticated Time-Based SQL Injection</title>
      <link>https://blog.pzhat.id.vn/posts/2026-03-05-cve-2026-2232/</link>
      <pubDate>Fri, 26 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-03-05-cve-2026-2232/</guid>
      <description>&lt;h1 id=&#34;cve-2026-2232-product-table-and-list-builder-for-woocommerce-lite-vulnerable-to-unauthenticated-time-based-sql-injection-via-search-parameter&#34;&gt;CVE-2026-2232 Product Table and List Builder for WooCommerce Lite Vulnerable To Unauthenticated Time-Based SQL Injection via &amp;lsquo;search&amp;rsquo; Parameter&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/SkbyWJDObg.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-02-19
&lt;strong&gt;CVE-ID:&lt;/strong&gt; CVE-2026-2232
&lt;strong&gt;CVSS:&lt;/strong&gt; 7.5 High
&lt;strong&gt;Affected Plugin:&lt;/strong&gt; Product Table and List Builder for WooCommerce Lite
&lt;strong&gt;Affected Versions:&lt;/strong&gt; &amp;lt;= 4.6.2
&lt;strong&gt;Vulnerability Type:&lt;/strong&gt; Unauthenticate Time-Based SQL Injection
&lt;strong&gt;CWE:&lt;/strong&gt; CWE-89 Improper Neutralization of Special Elements used in an SQL Command&lt;/p&gt;
&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;Product Table and List Builder for WooCommerce Lite plugin&lt;/strong&gt; for WordPress is vulnerable to &lt;strong&gt;time-based SQL Injection&lt;/strong&gt; via the &lt;strong&gt;&amp;lsquo;search&amp;rsquo; parameter&lt;/strong&gt; in &lt;strong&gt;all versions&lt;/strong&gt; up to, and including, &lt;strong&gt;4.6.2&lt;/strong&gt; due to &lt;strong&gt;insufficient escaping&lt;/strong&gt; on the user supplied parameter and &lt;strong&gt;lack of sufficient preparation&lt;/strong&gt; on the existing &lt;strong&gt;SQL query&lt;/strong&gt;. This makes it possible for unauthenticated attackers to append &lt;strong&gt;additional SQL queries&lt;/strong&gt; into already existing queries that can be used to &lt;strong&gt;extract sensitive information&lt;/strong&gt; from the database.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WordPress HT Contact Form 7 Plugin &lt;= 2.2.1 is vulnerable to a high priority Arbitrary File Upload</title>
      <link>https://blog.pzhat.id.vn/posts/2026-03-03-cve-2025-7340/</link>
      <pubDate>Thu, 25 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-03-03-cve-2025-7340/</guid>
      <description>&lt;h1 id=&#34;wordpress-ht-contact-form-7-plugin--221-is-vulnerable-to-a-high-priority-arbitrary-file-upload&#34;&gt;WordPress HT Contact Form 7 Plugin &amp;lt;= 2.2.1 is vulnerable to a high priority Arbitrary File Upload&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/HJ5TohCu-g.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2025-07-15
&lt;strong&gt;CVE-ID:&lt;/strong&gt; CVE-2025-7340
&lt;strong&gt;CVSS:&lt;/strong&gt; 10 Critical
&lt;strong&gt;Affected Plugin:&lt;/strong&gt; WordPress HT Contact Form 7 Plugin
&lt;strong&gt;Affected Versions:&lt;/strong&gt; &amp;lt;= 2.2.1
&lt;strong&gt;Vulnerability Type:&lt;/strong&gt; High priority Arbitrary File Upload
&lt;strong&gt;CWE:&lt;/strong&gt; CWE-434 Unrestricted Upload of File with Dangerous Type&lt;/p&gt;
&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;
&lt;p&gt;The HT Contact Form Widget For Elementor Page Builder &amp;amp; Gutenberg Blocks &amp;amp; Form Builder. plugin for WordPress is vulnerable to arbitrary file uploads due to missing file type validation in the temp_file_upload function in all versions up to, and including, 2.2.1. This makes it possible for unauthenticated attackers to upload arbitrary files on the affected site&amp;rsquo;s server which may make remote code execution possible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CVE-2025-13329 File Uploader for WooCommerce</title>
      <link>https://blog.pzhat.id.vn/posts/2026-02-03-cve-2025-13329/</link>
      <pubDate>Wed, 24 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-02-03-cve-2025-13329/</guid>
      <description>&lt;h1 id=&#34;cve-2025-13329-file-uploader-for-woocommerce--103---unauthenticated-arbitrary-file-upload-via-add-image-data&#34;&gt;CVE-2025-13329 File Uploader for WooCommerce &amp;lt;= 1.0.3 - Unauthenticated Arbitrary File Upload via add-image-data&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/SJGvzVA8bg.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;file-uploader-for-woocommerce-plugin&#34;&gt;File Uploader for WooCommerce Plugin&lt;/h1&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2025-12-20&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVE-ID:&lt;/strong&gt; CVE-2025-13329&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected Plugin:&lt;/strong&gt; File Uploader for WooCommerce&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected Versions:&lt;/strong&gt; &amp;lt;= 1.0.3&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulnerability Type:&lt;/strong&gt; Unauthenticated Arbitrary File Upload via add-image-data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CWE-434:&lt;/strong&gt; CWE-434 Unrestricted Upload of File with Dangerous Type&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;The File Uploader for WooCommerce&lt;/strong&gt; plugin for &lt;strong&gt;WordPress&lt;/strong&gt; is &lt;strong&gt;vulnerable to arbitrary file uploads&lt;/strong&gt; due to missing file type validation in the callback function for the &lt;strong&gt;&amp;lsquo;add-image-data&amp;rsquo;&lt;/strong&gt; &lt;strong&gt;REST API&lt;/strong&gt; endpoint in all versions up to, and including, &lt;strong&gt;1.0.3&lt;/strong&gt;. This makes it possible for &lt;strong&gt;unauthenticated&lt;/strong&gt; attackers to upload arbitrary files to the Uploadcare service and subsequently download them on the affected site&amp;rsquo;s server which may make &lt;strong&gt;remote code execution&lt;/strong&gt; possible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CVE-2025-68519 WordPress Brands for WooCommerce Plugin</title>
      <link>https://blog.pzhat.id.vn/posts/2026-02-01-cve-2025-68519/</link>
      <pubDate>Tue, 23 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-02-01-cve-2025-68519/</guid>
      <description>&lt;h1 id=&#34;cve-2025-68519-wordpress-brands-for-woocommerce-plugin--3863-is-vulnerable-to-sql-injection&#34;&gt;CVE-2025-68519 WordPress Brands for WooCommerce Plugin &amp;lt;= 3.8.6.3 is vulnerable to SQL Injection&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/ByI6-ltIbg.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;wordpress-brands-for-woocommerce-plugin&#34;&gt;WordPress Brands for WooCommerce Plugin&lt;/h1&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2025-12-24&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVE ID:&lt;/strong&gt; CVE-2025-68519&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected Plugin:&lt;/strong&gt; WordPress Brands for WooCommerce&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected Versions:&lt;/strong&gt; &amp;lt;= 3.8.6.3&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulnerability Type:&lt;/strong&gt; SQL Injection vulnerability&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Improper Neutralization of Special Elements&lt;/strong&gt; used in an &lt;strong&gt;SQL Command&lt;/strong&gt; (&amp;lsquo;SQL Injection&amp;rsquo;) vulnerability in &lt;strong&gt;BeRocket Brands&lt;/strong&gt; for WooCommerce brands-for-woocommerce allows &lt;strong&gt;Blind SQL Injection&lt;/strong&gt;.This issue affects Brands for WooCommerce: from n/a through &lt;strong&gt;&amp;lt;= 3.8.6.3&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CVE-2025-14770 – Unauthenticated SQL Injection via “city” Parameter</title>
      <link>https://blog.pzhat.id.vn/posts/2026-01-27-cve-2025-14770/</link>
      <pubDate>Mon, 22 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-01-27-cve-2025-14770/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/r1isJ3HLZl.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;wordpress-shipping-rate-by-cities-plugin&#34;&gt;WordPress Shipping Rate By Cities Plugin&lt;/h1&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CVE ID:&lt;/strong&gt; CVE-2025-14770&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected Plugin:&lt;/strong&gt; Shipping Rate By Cities&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affected Versions:&lt;/strong&gt; ≤ 2.0.0&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulnerability Type:&lt;/strong&gt; Unauthenticated SQL Injection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Attack Vector:&lt;/strong&gt; Network&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Authentication Required:&lt;/strong&gt; No&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;Shipping Rate By Cities&lt;/strong&gt; WordPress plugin contains an &lt;strong&gt;unauthenticated SQL Injection&lt;/strong&gt; vulnerability in versions up to &lt;strong&gt;2.0.0&lt;/strong&gt;.
The issue originates from unsafe handling of the &lt;code&gt;city&lt;/code&gt; parameter, which is concatenated directly into an SQL query without proper preparation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ysoserial Common Collections 3 Analyst (CC3)</title>
      <link>https://blog.pzhat.id.vn/posts/2026-01-21-ysoserial-cc3-analyst/</link>
      <pubDate>Sun, 21 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2026-01-21-ysoserial-cc3-analyst/</guid>
      <description>&lt;h1 id=&#34;ysoserial-common-collections-3-analyst-cc3&#34;&gt;Ysoserial Common Collections 3 Analyst (CC3)&lt;/h1&gt;
&lt;h3 id=&#34;tổng-quan&#34;&gt;Tổng quan&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;CC3 (CommonsCollections3)&lt;/code&gt; trong ysoserial là một &lt;code&gt;gadget chain&lt;/code&gt; dựa trên thư viện &lt;code&gt;Apache Commons Collections&lt;/code&gt; để kích hoạt hành vi nguy hiểm thông qua &lt;code&gt;Java deserialization&lt;/code&gt;. Nó dựa vào cách một số lớp trong thư viện có thể được “xâu chuỗi” (chain) để thực thi &lt;code&gt;logic&lt;/code&gt; ngoài ý muốn khi một đối tượng được &lt;code&gt;deserialization&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;setup-debug-trong-intellij&#34;&gt;SetUp Debug trong IntelliJ&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/By9T0v3rWx.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/BJtJ1O2B-l.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Lúc tiến hành setup để có thể debug, phải chú ý rằng CC1 và CC3 đã không còn chạy được sau Java version 8u71, vì sau phiên bản java đó &lt;code&gt;sun.reflect.annotation.AnnotationInvocationHandler&lt;/code&gt; đã thay đổi và không còn khả dụng. Vì vậy setup đẹp nhất là sử tải &lt;code&gt;JDK 1.7&lt;/code&gt; kèm theo đó là sử dụng &lt;code&gt;Ysoserial Commons Collections version 3.1&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Velocity Server Side Template Injection Challenge</title>
      <link>https://blog.pzhat.id.vn/posts/2025-12-31-ssti-velocity/</link>
      <pubDate>Sat, 20 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-12-31-ssti-velocity/</guid>
      <description>&lt;h1 id=&#34;velocity-server-side-template-injection-challenge&#34;&gt;Velocity Server Side Template Injection Challenge&lt;/h1&gt;
&lt;h3 id=&#34;tổng-quan-về-lab-velocity-ssti&#34;&gt;Tổng quan về lab Velocity SSTI&lt;/h3&gt;
&lt;p&gt;Đây là một lab mình thiết kế ra để demo và học về SSTI. Bên trong lab được chia ra làm &lt;code&gt;4 level&lt;/code&gt; với các lớp filter khác nhau. Nhiệm vụ của mình là &lt;code&gt;bypass&lt;/code&gt; được các lớp bảo mật đó nhằm mục đích cuối cùng là &lt;code&gt;RCE&lt;/code&gt;. Bây giờ mình sẽ đi vào phân tích chức năng của web app.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CBJS Java Misconfiguration Challenge</title>
      <link>https://blog.pzhat.id.vn/posts/2025-12-25-cbjs-misconfiguration/</link>
      <pubDate>Fri, 19 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-12-25-cbjs-misconfiguration/</guid>
      <description>&lt;h1 id=&#34;cbjs-java-misconfiguration-challenge&#34;&gt;CBJS Java Misconfiguration Challenge&lt;/h1&gt;
&lt;h3 id=&#34;statement-viewer-1-lỗ-hổng-từ-đặc-quyền-privileged-và-sự-hớ-hênh-của-admin&#34;&gt;Statement Viewer 1: Lỗ hổng từ đặc quyền &amp;ldquo;Privileged&amp;rdquo; và sự hớ hênh của Admin&lt;/h3&gt;
&lt;h4 id=&#34;tổng-quan-ứng-dụng&#34;&gt;Tổng quan ứng dụng&lt;/h4&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/HyJYXUFQZg.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/rk1BAIKm-g.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Ứng dụng cung cấp chức năng cơ bản: cho phép người dùng &lt;code&gt;upload file&lt;/code&gt; (định dạng PDF/TXT) và &lt;code&gt;view statement&lt;/code&gt; để xem lại các tệp tin đã tải lên. Mỗi tệp tin được cấp một đường dẫn riêng biệt để truy xuất. Qua phân tích mã nguồn (Whitebox), chúng ta sẽ tập trung vào những &lt;code&gt;&amp;quot;backdoor&amp;quot;&lt;/code&gt; mà developer đã bỏ quên.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tryhackme Hammer challenge WriteUp</title>
      <link>https://blog.pzhat.id.vn/posts/2025-12-05-tryhackme-hammer/</link>
      <pubDate>Thu, 18 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-12-05-tryhackme-hammer/</guid>
      <description>&lt;h1 id=&#34;tryhackme-hammer-web-challenge-writeup&#34;&gt;TryHackMe Hammer Web Challenge WriteUp&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image-14&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/S1-1mNlzbl.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;enumeration&#34;&gt;Enumeration&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image-15&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/rJKJXExMZx.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Tại đây, mình tiến hành scan và được 2 port đang mở bao gồm :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;22/tcp : đây là port SSH&lt;/li&gt;
&lt;li&gt;1337/tcp : đây là port của một cái http service và cái web app này được host lên bằng apache httpd. Bây giờ mình sẽ truy cập vào trang web.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;exploitation&#34;&gt;Exploitation&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image-16&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/HkmgQNeG-e.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Sau khi truy cập web trả về cho mình một trang login. Vấn đề ở đây là mình không hề có account để truy cập vậy nên mình sẽ thử với các gói request qua burp proxy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IredTeam AS-REP Roasting</title>
      <link>https://blog.pzhat.id.vn/posts/2025-12-02-iredteam-as-rep-roasting/</link>
      <pubDate>Wed, 17 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-12-02-iredteam-as-rep-roasting/</guid>
      <description>&lt;h1 id=&#34;iredteam-as-rep-roasting&#34;&gt;IredTeam AS-REP Roasting&lt;/h1&gt;
&lt;h3 id=&#34;as-rep-là-gì&#34;&gt;AS-REP là gì?&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;AS-REP&lt;/code&gt; (viết tắt của Authentication Service Reply) là một &lt;code&gt;thông điệp&lt;/code&gt; trong giao thức xác thực &lt;code&gt;Kerberos&lt;/code&gt;. Đây là bước thứ hai trong quá trình xác thực ban đầu, được gửi từ &lt;code&gt;Key Distribution Center (KDC)&lt;/code&gt;, thường là một Domain Controller trong môi trường Active Directory, đến người dùng.&lt;/p&gt;
&lt;p&gt;Thông điệp này chứa &lt;code&gt;Ticket-Granting Ticket (TGT)&lt;/code&gt;, một ticket được mã hóa dùng để yêu cầu các vé dịch vụ khác mà không cần người dùng phải nhập lại mật khẩu. Một phần của thông điệp &lt;code&gt;AS-REP&lt;/code&gt; này được mã hóa bằng chính &lt;code&gt;hash&lt;/code&gt; mật khẩu của người dùng.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ServerSide Template Injection (SSTI) Lab</title>
      <link>https://blog.pzhat.id.vn/posts/2025-12-01-ssti-lab/</link>
      <pubDate>Tue, 16 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-12-01-ssti-lab/</guid>
      <description>&lt;h1 id=&#34;serverside-template-injection-ssti-lab&#34;&gt;ServerSide Template Injection (SSTI) Lab&lt;/h1&gt;
&lt;h3 id=&#34;ssti-là-gì&#34;&gt;SSTI là gì&lt;/h3&gt;
&lt;p&gt;Server-Side Template Injection (SSTI) là một lỗ hổng bảo mật web nghiêm trọng cho phép kẻ tấn công chèn mã độc vào template của ứng dụng, dẫn đến việc mã này được thực thi trên phía server. Lỗ hổng này thường xảy ra khi dữ liệu đầu vào từ người dùng được nối trực tiếp vào template thay vì được truyền dưới dạng dữ liệu an toàn.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GraphQL API Vulnerability</title>
      <link>https://blog.pzhat.id.vn/posts/2025-11-25-graphql-api-vulnerability/</link>
      <pubDate>Mon, 15 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-11-25-graphql-api-vulnerability/</guid>
      <description>&lt;h1 id=&#34;graphql-api-vulnerability-portswigger-challenge&#34;&gt;GraphQL API Vulnerability PortSwigger Challenge&lt;/h1&gt;
&lt;h3 id=&#34;overview-về-graphql&#34;&gt;Overview về GraphQL&lt;/h3&gt;
&lt;p&gt;GraphQL là một ngôn ngữ truy vấn cho API (Query Language for APIs) và cũng là một môi trường thực thi phía máy chủ (server-side runtime) để thực hiện các truy vấn đó.&lt;/p&gt;
&lt;p&gt;Để dễ hiểu hãy hình dung như sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Với &lt;code&gt;API truyền thống&lt;/code&gt; (như REST API): Bạn phải gọi nhiều &lt;code&gt;&amp;quot;endpoint&amp;quot;&lt;/code&gt;(đường dẫn) khác nhau để lấy các loại dữ liệu khác nhau.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ví dụ: để lấy thông tin người dùng và các bài viết của họ, bạn có thể phải gọi /users/1 để lấy thông tin người dùng, sau đó gọi &lt;code&gt;/users/1/posts&lt;/code&gt; để lấy danh sách bài viết. Bạn thường nhận về toàn bộ dữ liệu mà endpoint đó cung cấp, dù bạn có cần hết hay không.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PortSwigger CORS (Cross-Origin Resource Sharing) challenge WriteUp</title>
      <link>https://blog.pzhat.id.vn/posts/2025-11-16-cors-portswigger/</link>
      <pubDate>Sun, 14 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-11-16-cors-portswigger/</guid>
      <description>&lt;h1 id=&#34;portswigger-cors-cross-origin-resource-sharing-challenge-writeup&#34;&gt;PortSwigger CORS (Cross-Origin Resource Sharing) challenge WriteUp&lt;/h1&gt;
&lt;h3 id=&#34;overview-về-cors&#34;&gt;Overview về CORS&lt;/h3&gt;
&lt;h4 id=&#34;cors-là-gì-vì-sao-lại-xuất-hiện&#34;&gt;CORS là gì? Vì sao lại xuất hiện&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;CORS (Cross-Origin Resource Sharing) là một cơ chế bảo mật trong web cho phép các tài nguyên trên một máy chủ được chia sẻ với các trang web có nguồn (origin) khác. &amp;ldquo;Nguồn&amp;rdquo; ở đây được định nghĩa bởi ba yếu tố: giao thức (http, https), tên miền (domain), và cổng (port).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ired.Team Kerberos Silver Ticket Execution</title>
      <link>https://blog.pzhat.id.vn/posts/2025-11-15-i.redteam-kerberos-silver-ticket/</link>
      <pubDate>Sat, 13 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-11-15-i.redteam-kerberos-silver-ticket/</guid>
      <description>&lt;h1 id=&#34;iredteam-kerberos-silver-ticket&#34;&gt;Ired.Team Kerberos Silver Ticket&lt;/h1&gt;
&lt;p&gt;Tiếp tục chuỗi series &lt;code&gt;AD abuse&lt;/code&gt; thì tiếp theo ta tiến tới &lt;code&gt;Kerberos Silver Ticket&lt;/code&gt; có nghĩa là ta sẽ hack quyền từ Kerberos nhưng không phải tạo &lt;code&gt;golden ticket&lt;/code&gt; để truy cập mọi tài nguyên trong DC mà ở đây ta chỉ tạo &lt;code&gt;Silver Ticket&lt;/code&gt; có quyền truy cập một số tài nguyên nhất định vì đôi khi ta cũng không cần phải full quyền để làm gì nhiều lúc sẽ dễ bị phát hiện nên ta chỉ cần lấy một vài tài nguyên, chính điều đó thì Silver Ticket ra đời.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PortSwigger CSRF Challenge WriteUps</title>
      <link>https://blog.pzhat.id.vn/posts/2025-11-14-csrf-portswigger-challenge/</link>
      <pubDate>Fri, 12 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-11-14-csrf-portswigger-challenge/</guid>
      <description>&lt;h1 id=&#34;portswigger-csrf-challenge-writeup&#34;&gt;PortSwigger CSRF Challenge WriteUp&lt;/h1&gt;
&lt;h3 id=&#34;giới-thiệu-về-csrf-cross-site-request-forgery&#34;&gt;Giới thiệu về CSRF (Cross-Site Request Forgery)&lt;/h3&gt;
&lt;h4 id=&#34;lỗ-hổng-csrf-là-gì-&#34;&gt;Lỗ hổng CSRF là gì :&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Cross-Site Request Forgery hay còn gọi theo tiếng việt là giả mạo yêu cầu trên nhiều trang, là một lỗ hổng bảo mật cho phép attacker lừa người dùng đã được xác thực (đã đăng nhập) thực hiện các hành động không mong muốn trên 1 ứng dụng Web.&lt;/li&gt;
&lt;li&gt;Nói đơn giản thì attacker sẽ mượn danh tính và session của một victim để gửi đi một yêu cầu giả mạo đến ứng dụng mà victim không hề hay biết. Nếu ứng dụng dễ bị tấn công, nó sẽ không thể phân biệt được đâu là yêu cầu giả mạo đâu là yêu cầu hợp lệ của victim (User).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;csrf-hoạt-động-như-thế-nào-&#34;&gt;CSRF hoạt động như thế nào :&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Để thực hiện tấn công CSRF cần có 3 điều kiện bao gồm :
&lt;ul&gt;
&lt;li&gt;Hành động quan trọng : Ứng dụng phải có một function (hành động, action) mà attacker muốn thực hiện ví dụ như là đổi mật khẩu, đổi username, đổi email, chuyển tiền,…. Nói chung nó có lợi có attacker là tương hết hay còn gọi là attack surface ngon, nhiều.&lt;/li&gt;
&lt;li&gt;Xử lý request dựa trên cookie, session : Application phải chỉ dựa vào cookie của trình duyệt để xác định người dùng đang gửi yêu cầu. Không có cơ chế nào xác minh request.&lt;/li&gt;
&lt;li&gt;Không có tham số không thể đoán trước : Các tham số trong yêu cầu thực hiện hành động phải là những giá trị mà attacker có thể đoán trược hoặc là biết trước.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;tại-sao-lỗ-hổng-này-tồn-tại-&#34;&gt;Tại sao lỗ hổng này tồn tại :&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Lỗ hổng CSRF tồn tại do sự tin tưởng của ứng dụng web vào các cookie mà trình duyệt tự động gửi kèm theo mỗi yêu cầu. Ứng dụng chỉ kiểm tra &amp;ldquo;ai&amp;rdquo; đang gửi yêu cầu (dựa trên cookie session) mà không kiểm tra &amp;ldquo;ý định&amp;rdquo; của người dùng có thực sự muốn thực hiện hành động đó hay không.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/ByFpDfMx-x.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ysoserial Commons Collections 5 Analyst</title>
      <link>https://blog.pzhat.id.vn/posts/2025-11-07-ysoserial-cc5/</link>
      <pubDate>Thu, 11 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-11-07-ysoserial-cc5/</guid>
      <description>&lt;h1 id=&#34;ysoserial-commons-collections-5-analyst&#34;&gt;Ysoserial Commons Collections 5 Analyst&lt;/h1&gt;
&lt;h3 id=&#34;tổng-quan-commonscollections-5-trong-ysoserial&#34;&gt;Tổng quan CommonsCollections 5 trong Ysoserial&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;CommonsCollections&lt;/code&gt; là một trong những gadget chain nổi tiếng nhất trong các cuộc tấn công khai thác &lt;code&gt;Java deserialization&lt;/code&gt; không an toàn, đặc biệt khi ứng dụng sử dụng thư viện &lt;code&gt;Apache Commons Collections&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Trong bài viết này, chúng ta sẽ tập trung vào &lt;code&gt;CommonsCollections5 (CC5)&lt;/code&gt; — một trong các chain được tích hợp sẵn trong công cụ &lt;code&gt;ysoserial&lt;/code&gt; . Mình chọn phân tích CC5 vì đây là chain được nhiều người đề xuất để học do tính minh bạch và dễ debug.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ired.Team Kerberos Golden Tickets Lab</title>
      <link>https://blog.pzhat.id.vn/posts/2025-11-07-i.redteam-kerberos-golden-ticket/</link>
      <pubDate>Wed, 10 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-11-07-i.redteam-kerberos-golden-ticket/</guid>
      <description>&lt;h1 id=&#34;iredteam-kerberos-golden-tickets-lab&#34;&gt;Ired.Team Kerberos: Golden Tickets Lab&lt;/h1&gt;
&lt;h3 id=&#34;overview&#34;&gt;Overview&lt;/h3&gt;
&lt;p&gt;Lab này khám phá một cuộc tấn công vào &lt;code&gt;Kerberos Authentication&lt;/code&gt; của &lt;code&gt;Active Directory(AD)&lt;/code&gt;. Chính xác hơn, đây là một cuộc tấn công giả mạo &lt;code&gt;Vé cấp quyền Kerberos (TGT)&lt;/code&gt; được sử dụng để xác thực User bằng Kerberos.&lt;/p&gt;
&lt;p&gt;TGT được sử dụng khi &lt;code&gt;Ticket Granting Service (TGS)&lt;/code&gt;, nghĩa là một TGT giả có thể giúp chúng ta có được bất kỳ ticket TGS nào.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tryhackme Basic Pentesting Challenge</title>
      <link>https://blog.pzhat.id.vn/posts/2025-11-04-thm-basic-pentesting/</link>
      <pubDate>Tue, 09 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-11-04-thm-basic-pentesting/</guid>
      <description>&lt;h1 id=&#34;tryhackme-basic-pentesting-challenge&#34;&gt;Tryhackme Basic Pentesting Challenge&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/BkgEBzP1Zx.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng nmap để scan các port đang mở của target ở đây tôi sử dụng lệnh &lt;code&gt;nmap -sV -T4 &amp;lt;ip&amp;gt;&lt;/code&gt; để scan cho nhanh và ta nhận được kết quả là 4 port đang mở.&lt;/p&gt;
&lt;p&gt;Với câu hỏi đầu là &lt;code&gt;What is the name of the hidden directory on the web server&lt;/code&gt; ta sẽ tiến hành scan directory bằng gobuster ở đâu mình dùng lệnh :&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ired.Team Kerberoasting (Credential Access)</title>
      <link>https://blog.pzhat.id.vn/posts/2025-11-03-i.redteam-kerberoasting/</link>
      <pubDate>Mon, 08 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-11-03-i.redteam-kerberoasting/</guid>
      <description>&lt;h1 id=&#34;iredteam-kerberoasting-credential-access&#34;&gt;Ired.Team Kerberoasting (Credential Access)&lt;/h1&gt;
&lt;h3 id=&#34;giải-thích-về-các-khái-niệm&#34;&gt;Giải thích về các khái niệm&lt;/h3&gt;
&lt;h4 id=&#34;kerberos-trong-active-directory&#34;&gt;Kerberos trong Active Directory&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Trong môi trường Windows Active Directory (AD), Kerberos là giao thức xác thực mặc định. Nó sử dụng các ticket để xác thực người dùng và dịch vụ mà không truyền mật khẩu qua mạng.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Các thành phần chính:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KDC &lt;code&gt;(Key Distribution Center)&lt;/code&gt;: Thường là Domain Controller (DC).&lt;/li&gt;
&lt;li&gt;TGT &lt;code&gt;(Ticket Granting Ticket)&lt;/code&gt;: Cấp cho user sau khi đăng nhập thành công → dùng để xin ticket cho dịch vụ.&lt;/li&gt;
&lt;li&gt;TGS &lt;code&gt;(Ticket Granting Service ticket)&lt;/code&gt;: Là service ticket cho một dịch vụ cụ thể → dùng để truy cập dịch vụ đó.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;spn-là-gì-service-principal-name&#34;&gt;SPN là gì? (Service Principal Name)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;SPN là một định danh duy nhất cho một dịch vụ trong domain.&lt;/li&gt;
&lt;li&gt;Định dạng: &lt;code&gt;ServiceClass/HostName[:Port]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;SPN được lưu trong thuộc tính &lt;code&gt;servicePrincipalName&lt;/code&gt; của đối tượng người dùng (user object).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;tgs-là-gì&#34;&gt;TGS là gì?&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;TGS &lt;code&gt;(Ticket Granting Service ticket)&lt;/code&gt; là ticket dùng để truy cập một dịch vụ cụ thể.&lt;/li&gt;
&lt;li&gt;Khi user yêu cầu truy cập dịch vụ (ví dụ: &lt;code&gt;IIS trên HTTP/dc-mantvydas.offense.local&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Tìm tài khoản nào sở hữu SPN đó → ví dụ: &lt;code&gt;user svc_iis&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Tạo TGS, trong đó có phần &lt;code&gt;&amp;quot;server ticket&amp;quot;&lt;/code&gt; được mã hóa bằng mật khẩu hash của &lt;code&gt;svc_iis&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Gửi TGS cho client.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;kỹ-thuật-kerberoasting-là-gì&#34;&gt;Kỹ thuật Kerberoasting là gì?&lt;/h4&gt;
&lt;p&gt;Lợi dụng việc TGS được &lt;code&gt;mã hóa&lt;/code&gt; bằng mật khẩu hash của tài khoản dịch vụ để trích xuất ticket, rồi &lt;code&gt;brute-force offline&lt;/code&gt; nhằm khôi phục mật khẩu gốc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ired.Team From Domain Admin to Enterprise Admin</title>
      <link>https://blog.pzhat.id.vn/posts/2025-10-30-iredteam-from-da-to-ea/</link>
      <pubDate>Sun, 07 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-10-30-iredteam-from-da-to-ea/</guid>
      <description>&lt;h1 id=&#34;iredteam-from-domain-admin-to-enterprise-admin&#34;&gt;Ired.Team From Domain Admin to Enterprise Admin&lt;/h1&gt;
&lt;h3 id=&#34;overview&#34;&gt;Overview&lt;/h3&gt;
&lt;p&gt;Ở lab này ta sẽ lợi dụng mối quan hệ giữa &lt;strong&gt;Parent-Child&lt;/strong&gt; domain từ đó lợi dụng mối quan hệ đó và gây nên leo thang đặc quyền.&lt;/p&gt;
&lt;h3 id=&#34;build-lab&#34;&gt;Build lab&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/BJhTNPJk-x.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;SetUp domain đặt tên là &lt;code&gt;offense.local&lt;/code&gt; đây là domain cha với IP là &lt;code&gt;192.168.10.10/24&lt;/code&gt; và &lt;code&gt;DNS: 127.0.0.1&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/BkRX1OR0ge.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Đã cài xong &lt;code&gt;Active Directory Domain Services (AD DS).&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Đã promote máy thành &lt;code&gt;Domain Controller&lt;/code&gt; cho domain: &lt;code&gt;offense.local&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java Deserialze - URLDNS Chain analysis (ysoserial)</title>
      <link>https://blog.pzhat.id.vn/posts/2025-10-28-ysoserial-urldns/</link>
      <pubDate>Sat, 06 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-10-28-ysoserial-urldns/</guid>
      <description>&lt;h1 id=&#34;java-deserialze---urldns-chain-analysis-ysoserial&#34;&gt;Java Deserialze - URLDNS Chain analysis (ysoserial)&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/r1R3sp6Rgl.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;java-deserialize-là-gì&#34;&gt;Java Deserialize là gì?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Java cung cấp cho người dùng hàm &lt;code&gt;writeObject()&lt;/code&gt; để tiến hành quá trình &lt;code&gt;serialize&lt;/code&gt; các object ở đây quá trình serialize sinh ra để chuyển một đối tượng Java thành chuỗi byte để lưu trữ (file, DB) hoặc truyền qua mạng (socket, RMI, JMS).&lt;/li&gt;
&lt;li&gt;Và để có thể đọc được dữ liệu được serialize từ &lt;code&gt;ObjectInputStream&lt;/code&gt; ta có quá trình &lt;code&gt;deserialize&lt;/code&gt; ở java sử dụng hàm &lt;code&gt;readObject()&lt;/code&gt; cho quá trình đó.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;khai-thác-java-object-injection&#34;&gt;Khai thác Java Object Injection&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Rủi ro sẽ đến với các đối tượng xử lý deserialize các &lt;code&gt;Untrusted Data&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Attacker có thể lợi dụng các magic method, cách mà OOP vận hành từ đó tạo ra &lt;code&gt;exploit chain&lt;/code&gt; hoàn chỉnh và tiến hành sử dụng payload.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;tiến-hành-setup-môi-trường-test&#34;&gt;Tiến hành Setup môi trường test&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/S1UCyu2Clg.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Spring Time CTF challenge WriteUp</title>
      <link>https://blog.pzhat.id.vn/posts/2025-10-23-cscv-spring-time-challenge/</link>
      <pubDate>Fri, 05 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-10-23-cscv-spring-time-challenge/</guid>
      <description>&lt;h1 id=&#34;spring-time-ctf-challenge-writeup&#34;&gt;Spring Time CTF challenge WriteUp&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/r14_Z7wRgx.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Web App được chia làm 2 services khác nhau bao gồm:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gateman : port 8080&lt;/li&gt;
&lt;li&gt;newsman : port 8082&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;phân-tích-từng-chức-năng-từng-service&#34;&gt;Phân tích từng chức năng từng service&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gateman&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/r1d3imwRee.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Nó được chạy bằng port 8080 bên cạnh đó nó còn gọi cloud cùng với đó là expose include ra các chức năng như &lt;code&gt;health&lt;/code&gt; , &lt;code&gt;info&lt;/code&gt; , &lt;code&gt;gateway&lt;/code&gt;. Vậy nên có thể biết được đây là service &lt;code&gt;Spring Cloud&lt;/code&gt; với chức năng routing đến các &lt;code&gt;routes&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java Deserialize CBJS Lab</title>
      <link>https://blog.pzhat.id.vn/posts/2025-10-15-cbjs-java-deserialize/</link>
      <pubDate>Thu, 04 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-10-15-cbjs-java-deserialize/</guid>
      <description>&lt;h1 id=&#34;java-deserialize-cbjs-lab&#34;&gt;Java Deserialize CBJS Lab&lt;/h1&gt;
&lt;h3 id=&#34;giải-thích-chi-tiết-về-lỗ-hổng-deserialization&#34;&gt;Giải thích chi tiết về lỗ hổng Deserialization&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;1. Deserialization là gì?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Serialization là quá trình chuyển đổi một object (đối tượng) trong bộ nhớ thành một định dạng có thể lưu trữ hoặc truyền tải (như byte stream, JSON, XML).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deserialization là quá trình ngược lại - chuyển đổi dữ liệu đã được serialize trở lại thành object trong bộ nhớ.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Nguyên nhân&lt;/strong&gt;
Lỗ hổng xảy ra khi:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pentester Lab From Sql Injection to Shell</title>
      <link>https://blog.pzhat.id.vn/posts/2025-10-10-pentesterlab-from-sql-to-shell/</link>
      <pubDate>Wed, 03 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-10-10-pentesterlab-from-sql-to-shell/</guid>
      <description>&lt;h1 id=&#34;pentester-lab-from-sql-injection-to-shell&#34;&gt;Pentester Lab From Sql Injection to Shell&lt;/h1&gt;
&lt;h3 id=&#34;fingerprinting&#34;&gt;Fingerprinting&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/SyqcWYLTeg.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Sử dụng nmap với cú pháp:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo nmap -sV 192.168.179.132 -T4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Kết quả trả về cho thấy đang có 2 port đang được mở đó là port 22 và 80 như ta đã biết port 22 là SSH còn 80 là Apache httpd thì có nghĩa là nó đang host 1 cái web nào đó.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/HkB2GtUaee.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Tiến hành curl đến xem thử có tồn tại không và để lấy được source code của web được host ở đây nó đưa cho ta thông tin về server và web được code bằng &lt;code&gt;PHP/5.3.3-7+squeeze14&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Web Cache Deception Demo Lab</title>
      <link>https://blog.pzhat.id.vn/posts/2025-10-09-web-cache-deception/</link>
      <pubDate>Tue, 02 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-10-09-web-cache-deception/</guid>
      <description>&lt;h1 id=&#34;web-cache-deception-demo-lab&#34;&gt;Web Cache Deception Demo Lab&lt;/h1&gt;
&lt;h3 id=&#34;tổng-quan-web-cache-deception&#34;&gt;Tổng quan Web Cache Deception&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Lỗ hổng &amp;ldquo;web cache deception&amp;rdquo; (đánh lừa bộ nhớ đệm web) là một dạng lỗ hổng bảo mật web, cho phép kẻ tấn công lừa hệ thống cache (bộ nhớ đệm web) lưu trữ và phục vụ lại những nội dung nhạy cảm hoặc riêng tư cho các bên không được ủy quyền. Đây là một hình thức khai thác sự khác biệt trong cách các server cache và server gốc xử lý các request—đặc biệt là về quy tắc lưu cache cho các tài nguyên động (như trang tài khoản người dùng, trang admin, v.v.).&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>NoSQL Injection Vulnerability Challenge Java</title>
      <link>https://blog.pzhat.id.vn/posts/2025-10-06-nosql-injection-lab/</link>
      <pubDate>Mon, 01 Dec 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-10-06-nosql-injection-lab/</guid>
      <description>&lt;h1 id=&#34;nosql-injection-vulnerability-challenge-java&#34;&gt;NoSQL Injection Vulnerability Challenge Java&lt;/h1&gt;
&lt;h3 id=&#34;tổng-quan-về-nosql-injection&#34;&gt;Tổng quan về NoSQL Injection&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Tấn công NoSQL injection là một lỗ hổng bảo mật trong các ứng dụng web sử dụng cơ sở dữ liệu NoSQL. NoSQL (viết tắt của &amp;ldquo;Not Only SQL&amp;rdquo;) là các hệ thống cơ sở dữ liệu không sử dụng ngôn ngữ truy vấn có cấu trúc SQL, mà thay vào đó dùng các định dạng dữ liệu linh hoạt hơn như cặp khóa-giá trị, tài liệu (document), hoặc đồ thị dữ liệu.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Broken Access Control Vulnerability Lab</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-30-brokenaccess-control/</link>
      <pubDate>Sun, 30 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-30-brokenaccess-control/</guid>
      <description>&lt;h1 id=&#34;broken-access-control-vulnerability-lab&#34;&gt;Broken Access Control Vulnerability Lab&lt;/h1&gt;
&lt;h3 id=&#34;what-is-broken-access-control-bac&#34;&gt;What is Broken Access Control (BAC)&lt;/h3&gt;
&lt;p&gt;Broken Access Control là một loại lỗ hổng bảo mật web xảy ra khi người dùng có thể truy cập vào các tài nguyên hoặc thực hiện các hành động vượt quá quyền hạn cho phép của họ. Đây là một trong những rủi ro bảo mật nghiêm trọng nhất đối với các ứng dụng web, theo danh sách của OWASP Top 10.&lt;/p&gt;</description>
    </item>
    <item>
      <title>XXE Injection Vulnerability Lab</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-28-xxe-injection/</link>
      <pubDate>Sat, 29 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-28-xxe-injection/</guid>
      <description>&lt;h1 id=&#34;xxe-injection-vulnerability-lab&#34;&gt;XXE Injection Vulnerability Lab&lt;/h1&gt;
&lt;h3 id=&#34;xxe-injection-là-gì&#34;&gt;XXE Injection là gì?&lt;/h3&gt;
&lt;p&gt;XXE (XML External Entity) Injection là một lỗ hổng bảo mật web cho phép kẻ tấn công can thiệp vào quá trình một ứng dụng xử lý dữ liệu XML. Lỗ hổng này xảy ra khi một trình phân tích (parser) XML được cấu hình yếu xử lý các thực thể bên ngoài (external entities) do người dùng cung cấp trong tài liệu XML.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WebSec.fr level 1 CTF challenge</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-26-websecfr-level1/</link>
      <pubDate>Fri, 28 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-26-websecfr-level1/</guid>
      <description>&lt;h1 id=&#34;websecfr-level-1-ctf-challenge&#34;&gt;WebSec.fr level 1 CTF challenge&lt;/h1&gt;
&lt;h3 id=&#34;overview&#34;&gt;Overview&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/Sk1nSnX3xg.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Giao diện chức năng của level này ta có thể thấy nó là một web app có chức năng hiển thị username bằng cách nhập vào userID nên bước đầu ta có thể nghi ngờ nó dính Sql Injection.&lt;/p&gt;
&lt;h3 id=&#34;phân-tích-source-code&#34;&gt;Phân tích source code&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;?&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;php&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;session_start&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;ini_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;display_errors&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;on&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;ini_set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;error_reporting&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;E_ALL&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;include&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;anti_csrf.php&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;init_token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;LevelOne&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;doQuery&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$injection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nv&#34;&gt;$pdo&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;SQLite3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;database.db&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;SQLITE3_OPEN_READONLY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nv&#34;&gt;$query&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;SELECT id,username FROM users WHERE id=&amp;#39;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;.&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$injection&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;.&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39; LIMIT 1&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nv&#34;&gt;$getUsers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$pdo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nv&#34;&gt;$users&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$getUsers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;fetchArray&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;SQLITE3_ASSOC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$users&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$users&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;isset&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_POST&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;submit&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;isset&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_POST&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;user_id&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;check_and_refresh_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nv&#34;&gt;$lo&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;LevelOne&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nv&#34;&gt;$userDetails&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$lo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;doQuery&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_POST&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;user_id&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Challenge cung cấp cho ta đoạn source code của của web app với logic được xử lý bằng php và ta có thể thấy rằng trường userID được query bằng SQLITE3.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Server Side Request Forgery (Java)</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-23-ssrf-challenge/</link>
      <pubDate>Thu, 27 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-23-ssrf-challenge/</guid>
      <description>&lt;h1 id=&#34;server-side-request-forgery-java&#34;&gt;Server Side Request Forgery (Java)&lt;/h1&gt;
&lt;h3 id=&#34;source-code&#34;&gt;Source Code&lt;/h3&gt;
&lt;p&gt;Github: &lt;a href=&#34;https://github.com/pzhat/SSRF_vuln_demo&#34;&gt;https://github.com/pzhat/SSRF_vuln_demo&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;what-is-ssrf&#34;&gt;What is SSRF&lt;/h3&gt;
&lt;p&gt;Giới thiệu về Server-Side Request Forgery :&lt;/p&gt;
&lt;p&gt;Chúng ta có xu hướng lơ là, mất cảnh giác khi đang trong vùng an toàn&lt;/p&gt;
&lt;p&gt;→ Developer nghĩ rằng hacker sẽ không truy cập được các ứng dụng nội bộ do đó việc bị hack gần như là không thể&lt;/p&gt;
&lt;p&gt;→ Pentester cũng không đủ thời gian để security test hết tất cả dịch vụ nội bộ&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java Servlet Path Traversal vulnerability</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-19-path-traversal-servlet/</link>
      <pubDate>Wed, 26 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-19-path-traversal-servlet/</guid>
      <description>&lt;h1 id=&#34;java-servlet-path-traversal-vulnerability&#34;&gt;Java Servlet Path Traversal vulnerability&lt;/h1&gt;
&lt;h3 id=&#34;source-code&#34;&gt;Source Code:&lt;/h3&gt;
&lt;p&gt;[&lt;a href=&#34;https://github.com/pzhat/Path_Traversal_Lab&#34;&gt;Github Link&lt;/a&gt;]&lt;/p&gt;
&lt;h3 id=&#34;overview&#34;&gt;Overview&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/SJl8JTtolx.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Đây là chức năng hiển thị hình ảnh của các file đã nằm trong folder &lt;code&gt;images&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/rkGKkaYjle.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Ở đây ta test file &lt;code&gt;skibidi.jpg&lt;/code&gt; và request nó sẽ hiển thị lên cho ta.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/ByPi1pKjgg.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Đây là nơi chứa các file có thể hiển thị.&lt;/p&gt;
&lt;p&gt;Vì là build trên môi trường windows localhost qua apache tôi sẽ tạo một thư mục &lt;code&gt;/protected&lt;/code&gt; có chứa file bí mật.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CyberCon 2025 SafeUpload Web Challenge</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-17-seccon-safeupload-web-challenge/</link>
      <pubDate>Tue, 25 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-17-seccon-safeupload-web-challenge/</guid>
      <description>&lt;h1 id=&#34;cybercon-2025-safeupload-web-challenge&#34;&gt;CyberCon 2025 SafeUpload Web Challenge&lt;/h1&gt;
&lt;h3 id=&#34;tổng-quan-challenge&#34;&gt;Tổng quan challenge&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/Hkm8uTIjll.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Mở challenge lên thì ta thấy nó cấp cho ta một giao diện dùng để upload file nên nghi ngờ ban đầu sẽ là web này dính lỗ hổng file upload.&lt;/p&gt;
&lt;p&gt;Tiến hành thử upload lên file php với nội dung:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;?&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;php&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;test&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/B1guFaUsxx.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Có vẻ như đã dính filter của bài có thể thấy nó đã xoá đi file mình upload lên, bây giờ ta thử upload 1 file php nhưng không có nội dung.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WebSec.fr Level 28 CTF challenge</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-16-websec.fr-level28/</link>
      <pubDate>Mon, 24 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-16-websec.fr-level28/</guid>
      <description>&lt;h1 id=&#34;websecfr-level-28-ctf-challenge&#34;&gt;WebSec.fr Level 28 CTF challenge&lt;/h1&gt;
&lt;h3 id=&#34;tổng-quan&#34;&gt;Tổng quan:&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/Syc1KLLjxl.png&#34;&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;?&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;php&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;isset&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_POST&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;submit&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_FILES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;flag_file&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;][&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;size&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;4096&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;die&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Your file is too heavy.&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nv&#34;&gt;$filename&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;./tmp/&amp;#39;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;.&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;md5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_SERVER&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;REMOTE_ADDR&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;.&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;.php&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nv&#34;&gt;$fp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;fopen&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_FILES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;flag_file&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;][&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;tmp_name&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nv&#34;&gt;$flagfilecontent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;fread&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$fp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;filesize&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_FILES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;flag_file&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;][&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;tmp_name&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fclose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$fp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;file_put_contents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$filename&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$flagfilecontent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;md5_file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$filename&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;md5_file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;flag.php&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$_POST&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;checksum&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;crc32&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_POST&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;checksum&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;include&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$filename&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;// it contains the `$flag` variable
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nv&#34;&gt;$flag&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Nope, &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;$filename&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; is not the right file, sorry.&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nx&#34;&gt;sleep&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;// Deter bruteforce
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;unlink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$filename&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Đoạn mã này là một trang web đơn giản cho phép người dùng tải lên một tệp và nhập một giá trị checksum. Mục tiêu là tải lên một tệp tin sao cho hai điều kiện sau được thỏa mãn:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tryhackme EvilGPT challenge WriteUp by @phatmh</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-09-thm-evilgpt/</link>
      <pubDate>Sun, 23 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-09-thm-evilgpt/</guid>
      <description>&lt;h1 id=&#34;tryhackme-evilgpt-challenge-writeup-by-phatmh&#34;&gt;Tryhackme EvilGPT challenge WriteUp by @phatmh&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/SJs0f-gLgl.png&#34;&gt;
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/BJbzEWeIle.png&#34;&gt;
Dùng netcat để tiến hành kết nối với chall và tiến hành LLM Inject để có thể moi được flag từ con AI.
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/By7uHZgLxl.png&#34;&gt;
Sau khi test thử thì đây không phải con AI bình thường như tôi nghĩ mà nó là một con AI thực thi các câu lệnh OS vậy bây giờ tiến hành thử moi ra các thứ có trong server.
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/SkQHvWeUxg.png&#34;&gt;
Tiến hành đọc thử source code của con AI xem nó có những cái gì.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java Servlet Sql Injection Vulnerability by @Phatmh</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-09-servlet-sql-injection/</link>
      <pubDate>Sat, 22 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-09-servlet-sql-injection/</guid>
      <description>&lt;h1 id=&#34;java-servlet-sql-injection-vulnerability-by-phatmh&#34;&gt;Java Servlet Sql Injection Vulnerability by @Phatmh&lt;/h1&gt;
&lt;h3 id=&#34;tổng-quan-cấu-trúc-file-java&#34;&gt;Tổng quan cấu trúc file java&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;+---.idea
   +---dataSources
+---.mvn
   +---wrapper
+---src
   +---main
      +---java
         +---sql_injection
             +---controller
             +---dao
             +---model
             +---util
      +---resources
         +---META-INF
      +---webapp
          +---WEB-INF
   +---test
       +---java
       +---resources
+---target
    +---classes
       +---META-INF
       +---sql_injection
           +---controller
           +---dao
           +---model
           +---util
    +---generated-sources
       +---annotations
    +---Sql_Injection-1.0-SNAPSHOT
        +---META-INF
        +---WEB-INF
            +---classes
                +---META-INF
                +---sql_injection
                    +---controller
                    +---dao
                    +---model
                    +---util
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/S16Q8BvYxx.png&#34;&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Cấu trúc của project được viết bằng mô hình MVC với UserDAO là nơi xử lý logic chính. Tại đây mình tạo ra 11 level tương ứng với các độ khó khác nhau. Ở đây basic sẽ là 1-5 và 6-11 sẽ là hard.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;source-code-github&#34;&gt;Source Code (Github)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/pzhat/Sql_Injection_Lab&#34;&gt;Github&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java Servlet Command Injection Vulnerability Challenges</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-09-servlet-cmdi/</link>
      <pubDate>Fri, 21 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-09-servlet-cmdi/</guid>
      <description>&lt;h1 id=&#34;java-servlet-command-injection-vulnerability-challenges&#34;&gt;Java Servlet Command Injection Vulnerability Challenges&lt;/h1&gt;
&lt;h3 id=&#34;cấu-trúc-project&#34;&gt;Cấu trúc Project&lt;/h3&gt;
&lt;summary&gt;
Cấu trúc Project
&lt;/summary&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+---.idea
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+---.mvn
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   +---wrapper
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+---src
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   +---main
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   ª   +---java
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   ª   ª   +---ci
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   ª   ª       +---controller
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   ª   ª       +---service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   ª   ª       +---util
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   ª   +---resources
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   ª   ª   +---META-INF
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   ª   +---webapp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   ª       +---WEB-INF
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª   +---test
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª       +---java
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ª       +---resources
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+---target
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    +---classes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª   +---ci
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª   ª   +---controller
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª   ª   +---service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª   ª   +---util
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª   +---META-INF
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    +---Command_Injection-1.0-SNAPSHOT
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª   +---META-INF
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª   +---WEB-INF
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª       +---classes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª           +---ci
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª           ª   +---controller
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª           ª   +---service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª           ª   +---util
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ª           +---META-INF
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    +---generated-sources
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        +---annotations
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;mark&gt;LabServlet.java:&lt;/mark&gt;Xử lý HTTP request
với response thực hiện các tác vụ trên server và trả về kết quả cho
người dùng.&lt;/li&gt;
&lt;li&gt;&lt;mark&gt;LabService.java:&lt;/mark&gt; Nơi đây là nơi xử lý
logic chính của cả Web Application là nơi xử lý các level khác nhau.&lt;/li&gt;
&lt;li&gt;&lt;mark&gt;Shell.java:&lt;/mark&gt; Có nhiệm vụ thực thi các
lệnh shell hoặc command-line từ chương trình Java và trả về kết quả
của lệnh đó dưới dạng chuỗi.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;source-code&#34;&gt;Source Code:&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/pzhat/Command_Injection_Lab&#34;&gt;GitHub&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>TryHackme Pickle Rick Challenge WriteUp by Phatmh.</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-09-pickle-rick-thm/</link>
      <pubDate>Thu, 20 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-09-pickle-rick-thm/</guid>
      <description>&lt;h1 id=&#34;tryhackme-pickle-rick-challenge-writeup-by-phatmh&#34;&gt;TryHackme Pickle Rick Challenge WriteUp by Phatmh.&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/HyFRp7ONel.png&#34;&gt;
[link challenge]:https://tryhackme.com/room/picklerick
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/SJcZC7_4ll.png&#34;&gt;
Tiến hành dùng Openvpn kết nối với &lt;em&gt;&lt;strong&gt;Tryhackme.&lt;/strong&gt;&lt;/em&gt;
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/BkYLRXOEex.png&#34;&gt;
Tiến hành kiểm tra mình đã cùng mạng mới máy bên Tryhackme hay chưa.&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/rk9dCQ_Nlx.png&#34;&gt;
Câu hỏi và Ip của challenge nãy đã test và kết nối thành công.&lt;/p&gt;
&lt;h3 id=&#34;bước-1-recon&#34;&gt;Bước 1: Recon&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/SkoGJEuVlg.png&#34;&gt;
Sử dụng Nmap để tiến hành kiểm tra xem có port nào đang được mở ra, ở đây phát hiện ra được bên máy đang mở port 22/tcp và port 88/tcp ở đây tôi nghĩ là server nạn nhân đang chạy &lt;em&gt;&lt;strong&gt;SSH và HTTP&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java Servlet FileUpload Vulnerability</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-09-fileupload-servlet/</link>
      <pubDate>Wed, 19 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-09-fileupload-servlet/</guid>
      <description>&lt;h1 id=&#34;java-servlet-fileupload-vulnerability-by-phatmh&#34;&gt;Java Servlet FileUpload Vulnerability by @Phatmh&lt;/h1&gt;
&lt;h3 id=&#34;lỗ-hổng-file-upload&#34;&gt;Lỗ hổng File Upload&lt;/h3&gt;
&lt;p&gt;Bản chất của File Upload: File Upload đối với tôi nó đơn giản chỉ là lợi
dụng Unsafe Method để truyền một Untrusted Data vào nhằm thay đổi hành
vi của hệ thống trong trường hợp này là Web App, với FileUpload những gì
User Upload lên sẽ chính là Untrusted Data và với Feature Upload File
như này sẽ thế nào nếu nó không được Validate một cách cẩn thận ta sẽ
đến với DEMO bằng Java Servlet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cookie Arena Challenges WU (@Phatmh)</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-09-cookie-arena-cmdi/</link>
      <pubDate>Tue, 18 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-09-cookie-arena-cmdi/</guid>
      <description>&lt;h1 id=&#34;cookie-arena-web-challenges-writeup-by-phatmh&#34;&gt;Cookie Arena Web Challenges WriteUp by (@Phatmh)&lt;/h1&gt;
&lt;h3 id=&#34;nslookup-level-1&#34;&gt;NSLookup (Level 1)&lt;/h3&gt;
&lt;p&gt;Đây là một Website có chức năng là nslookup sử dụng hàm shell_exec của php để thực thi. Ta tiến hành truy cập để xem giao diện của web app.&lt;br&gt;
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/SJGVV2iSgg.png&#34;&gt;&lt;br&gt;
Ở đây ta thấy nó khá là basic khi chỉ có duy nhất một nơi có chức năng nslookup và bên cạnh là source code cho sẵn của chall, ta sẽ tiến hành phân tích source code được cấp sẵn.&lt;br&gt;
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/H1wz8niHel.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>CanteenFood CTF Challenge WriteUp</title>
      <link>https://blog.pzhat.id.vn/posts/2025-09-09-canteenfood-ctf-challenge-writeup/</link>
      <pubDate>Mon, 17 Nov 2025 00:00:00 +0700</pubDate>
      <guid>https://blog.pzhat.id.vn/posts/2025-09-09-canteenfood-ctf-challenge-writeup/</guid>
      <description>&lt;h1 id=&#34;canteenfood-ctf-challenge-writeup-by-phatmh&#34;&gt;CanteenFood CTF Challenge WriteUp by @Phatmh&lt;/h1&gt;
&lt;h2 id=&#34;tiến-hành-phân-tích-chức-năng-theo-kiểu-blackbox&#34;&gt;Tiến hành phân tích chức năng theo kiểu BlackBox&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/SJOQlrxHxx.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Đây là một trang Web có chức năng cho &lt;code&gt;User&lt;/code&gt; tìm kiếm được món ăn phù hợp với túi tiền của mình nhất bằng cách nhập số tiền mình mong muốn nó sẽ trả về món mà mình đủ tiền trả.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://hackmd.io/_uploads/rJesxBgBxx.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Ở đây sau khi viết ra số 300 và tiến hành bấm chức năng thì nó trả về được list các món dưới 300.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
