<?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>Ffuf on Rio Blog</title><link>https://phucrio.me/tags/ffuf/</link><description>Recent content in Ffuf on Rio Blog</description><generator>Hugo -- 0.150.0</generator><language>en</language><lastBuildDate>Sun, 31 May 2026 17:38:09 -0400</lastBuildDate><atom:link href="https://phucrio.me/tags/ffuf/index.xml" rel="self" type="application/rss+xml"/><item><title>HTB - WingData Write-Up</title><link>https://phucrio.me/posts/htb-wingdata-write-up/</link><pubDate>Sun, 31 May 2026 14:22:01 -0400</pubDate><guid>https://phucrio.me/posts/htb-wingdata-write-up/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;WingData is a Linux machine built around &lt;strong&gt;Wing FTP Server&lt;/strong&gt;. The intended path chains a &lt;strong&gt;Wing FTP unauthenticated RCE&lt;/strong&gt; into credential recovery for SSH access as &lt;code&gt;wacky&lt;/code&gt;, followed by a root escalation through a &lt;strong&gt;Python &lt;code&gt;tarfile&lt;/code&gt; extraction bug&lt;/strong&gt; exposed by a sudo-allowed restore script.&lt;/p&gt;
&lt;p&gt;Attack chain:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Wing FTP exposure → config leakage / credential recovery → SSH as wacky → vulnerable tar restore script → root&lt;/code&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Technique&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Recon&lt;/td&gt;
&lt;td&gt;&lt;code&gt;nmap&lt;/code&gt;, vhost checks, &lt;code&gt;ffuf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Wing FTP attack surface identified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Initial access&lt;/td&gt;
&lt;td&gt;Wing FTP RCE / recovered credentials&lt;/td&gt;
&lt;td&gt;SSH as &lt;code&gt;wacky&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Privilege escalation&lt;/td&gt;
&lt;td&gt;CVE-2025-4517 (&lt;code&gt;tarfile.extractall(filter=&amp;quot;data&amp;quot;)&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;root&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Target&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>