<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Shell on slightlymore</title><link>https://slightlymore.co.uk/tags/shell/</link><description>Recent content in Shell 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>Sat, 10 Jan 2026 10:52:01 +0000</lastBuildDate><atom:link href="https://slightlymore.co.uk/tags/shell/index.xml" rel="self" type="application/rss+xml"/><item><title>Techniques for bypassing blocklist words for command injections</title><link>https://slightlymore.co.uk/techniques-for-bypassing-blocklist-words-for-command-injections/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><guid>https://slightlymore.co.uk/techniques-for-bypassing-blocklist-words-for-command-injections/</guid><description>&lt;h2 id="inserting-noop-characters"&gt;Inserting noop characters&lt;/h2&gt;
&lt;p&gt;Quotes (even number of non-mixed) will be ignored by bash. &lt;code&gt;$ c'a't&lt;/code&gt; becomes &lt;code&gt;$ cat&lt;/code&gt;. Similar for &lt;code&gt;$ c&amp;quot;a&amp;quot;t&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Backslashing chars (other than &lt;code&gt;\n&lt;/code&gt; etc, obs) will have no effect. &lt;code&gt;$ c\at&lt;/code&gt; becomes &lt;code&gt;$ cat&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Use the positional param character &lt;code&gt;$ c$@at&lt;/code&gt; becomes &lt;code&gt;$ cat&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="manipulate-the-characters"&gt;Manipulate the characters&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;$(rev&amp;lt;&amp;lt;&amp;lt;'tac')&lt;/code&gt; becomes &lt;code&gt;cat&lt;/code&gt;. Experiment with other things like rot13.&lt;/p&gt;
&lt;h2 id="encode-the-command"&gt;Encode the command&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;$(base64 -d&amp;lt;&amp;lt;&amp;lt;&amp;quot;Y2F0Cg==&amp;quot;)&lt;/code&gt; becomes &lt;code&gt;cat&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Techniques for bypassing blocklisted characters for command injections</title><link>https://slightlymore.co.uk/techniques-for-bypassing-blocklisted-characters-for-command-injections/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><guid>https://slightlymore.co.uk/techniques-for-bypassing-blocklisted-characters-for-command-injections/</guid><description>&lt;h2 id="whitespace"&gt;Whitespace&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;%0a&lt;/code&gt;: newline&lt;/li&gt;
&lt;li&gt;&lt;code&gt;%20&lt;/code&gt;: space&lt;/li&gt;
&lt;li&gt;&lt;code&gt;%09&lt;/code&gt;: tab&lt;/li&gt;
&lt;li&gt;&lt;code&gt;${IFS}&lt;/code&gt;: &lt;a href="https://en.wikipedia.org/wiki/Input_Field_Separators" target="_blank" rel="noopener"&gt;Input Field Separators ↗️&lt;/a&gt;
 (typically space, tab, newline)&lt;/li&gt;
&lt;li&gt;bash bracket expansion: &lt;code&gt;{ls,-la}&lt;/code&gt; turns into &lt;code&gt;ls -la&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="special-characters"&gt;Special characters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;forward slash: &lt;code&gt;echo ${PATH:0:1}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;semicolon: &lt;code&gt;echo ${LS_COLORS:10:1}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;pipe: try using &lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="shifting-characters"&gt;Shifting characters&lt;/h2&gt;
&lt;p&gt;This command will shift a letter one to the right &lt;code&gt;echo $(tr '!-}' '&amp;quot;-~'&amp;lt;&amp;lt;&amp;lt;[)&lt;/code&gt;. e.g. &lt;code&gt;~&lt;/code&gt; becomes &lt;code&gt;!&lt;/code&gt;.&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;shift_generator&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;shift&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;char&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;second_start&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;&lt;span class="m"&gt;33&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;local&lt;/span&gt; &lt;span class="nv"&gt;second_end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;&lt;span class="m"&gt;33&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;echo \$(tr &amp;#39;\\!-~&amp;#39; &amp;#39;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%b-~\\!-%b&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;\\%03o&amp;#39;&lt;/span&gt; &lt;span class="nv"&gt;$second_start&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;\\%03o&amp;#39;&lt;/span&gt; &lt;span class="nv"&gt;$second_end&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#39;&amp;lt;&amp;lt;&amp;lt;&amp;#39;%s&amp;#39;)\n&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$char&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# usage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;shift_generator &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;~&amp;#34;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="tooling"&gt;Tooling&lt;/h2&gt;
&lt;p&gt;For more advanced obfuscation you can consider tools such as:&lt;/p&gt;</description></item></channel></rss>