<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sqli on kanyo's blog</title><link>https://chaelsoo.me/tags/sqli/</link><description>Recent content in Sqli on kanyo's blog</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><lastBuildDate>Mon, 08 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://chaelsoo.me/tags/sqli/index.xml" rel="self" type="application/rss+xml"/><item><title>HTB: Trick</title><link>https://chaelsoo.me/writeups/htb-trick/</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate><guid>https://chaelsoo.me/writeups/htb-trick/</guid><description>&lt;p&gt;An Easy box but one that makes you work for it in an unexpected direction. Port 80 is a static placeholder page with nothing on it. The real surface is DNS: zone transfer hands you a subdomain, that subdomain has a login form with a time-based blind SQLi, you get credentials, but the LFI on that same app is filtered. The actual LFI is on a second subdomain you only find by fuzzing a prefix pattern. That subdomain reads michael&amp;rsquo;s SSH key, you get in, and the privilege escalation is a clean abuse of fail2ban&amp;rsquo;s action config combined with &lt;code&gt;sudo&lt;/code&gt; restart rights. The credentials from payroll end up being almost irrelevant to the root path, which is a bit annoying in hindsight, but the DNS zone transfer and the fail2ban trick are both things worth keeping in your toolkit.&lt;/p&gt;</description></item><item><title>HTB: Pandora</title><link>https://chaelsoo.me/writeups/htb-pandora/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://chaelsoo.me/writeups/htb-pandora/</guid><description>&lt;p&gt;Linux Easy. The TCP scan gives you almost nothing: SSH on 22 and a static company landing page on 80. The UDP scan is where things get interesting. SNMP is running with the default &amp;ldquo;public&amp;rdquo; community string, and the process argument table has &lt;code&gt;host_check&lt;/code&gt; running with credentials directly in its parameters. That&amp;rsquo;s your SSH login.&lt;/p&gt;
&lt;p&gt;Once inside as &lt;code&gt;daniel&lt;/code&gt;, you&amp;rsquo;re not the user that holds the flag. A second user, &lt;code&gt;matt&lt;/code&gt;, owns the Pandora FMS monitoring console that&amp;rsquo;s locked behind a localhost-only virtual host. Getting into that console doesn&amp;rsquo;t require a valid password: an unauthenticated SQLi lets you dump active PHP sessions and just cookie yourself in as matt. From there, an authenticated RCE via event response drops a reverse shell.&lt;/p&gt;</description></item><item><title>HTB: StreamIO</title><link>https://chaelsoo.me/writeups/htb-streamio/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://chaelsoo.me/writeups/htb-streamio/</guid><description>&lt;p&gt;Windows AD box with a PHP streaming site on HTTPS. The attack chain is unusually web-heavy for an HTB Active Directory box: you spend more time in Burp than in evil-winrm before the domain even becomes relevant. The interesting part isn&amp;rsquo;t any single vulnerability. It&amp;rsquo;s how a SQL injection on one subdomain eventually feeds into an eval() backdoor on another, and how Firefox&amp;rsquo;s credential store hands over an AD account with a path nobody mentions until you look at it in BloodHound.&lt;/p&gt;</description></item><item><title>HackINI 2026: Legacy</title><link>https://chaelsoo.me/writeups/hackini-legacy/</link><pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate><guid>https://chaelsoo.me/writeups/hackini-legacy/</guid><description>&lt;p&gt;The fourth machine in the chain. A Linux server running two web services on non-standard ports. One was an older Anuko Time Tracker instance with a known SQL injection CVE, the other was a Webmin panel that opened up once you had the right credentials. The interesting part here was that this machine didn&amp;rsquo;t require brute-forcing or clever guessing: the credentials came from earlier in the chain, and the exploit path came from recognizing the software version and knowing where to look.&lt;/p&gt;</description></item></channel></rss>