<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python Library Hijacking on seraldinho.pages.dev</title><link>https://seraldinho.pages.dev/tags/python-library-hijacking/</link><description>Recent content in Python Library Hijacking on seraldinho.pages.dev</description><generator>Hugo -- gohugo.io</generator><language>es</language><managingEditor>nseral@proton.me (Nicolás Seral)</managingEditor><webMaster>nseral@proton.me (Nicolás Seral)</webMaster><copyright>© 2026 Nicolás Seral</copyright><atom:link href="https://seraldinho.pages.dev/tags/python-library-hijacking/index.xml" rel="self" type="application/rss+xml"/><item><title>Python Library Hijacking</title><link>https://seraldinho.pages.dev/notas/tecnicas/python-library-hijacking/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nseral@proton.me (Nicolás Seral)</author><guid>https://seraldinho.pages.dev/notas/tecnicas/python-library-hijacking/</guid><description>&lt;p&gt;El Python Library Hijacking es una técnica de escalada de privilegios que consiste en aprovechar la forma en la que Python busca las librerías para cargar código malicioso en lugar de las librerías originales.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Funcionamiento
 &lt;div id="funcionamiento" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#funcionamiento" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Python busca módulos en un órden específico definido por &lt;code&gt;sys.path&lt;/code&gt;, que puede verse de la siguiente manera:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ python3 -c &lt;span style="color:#e6db74"&gt;&amp;#39;import sys; print(sys.path)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;/usr/lib/python312.zip&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;/usr/lib/python3.12&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;/usr/lib/python3.12/lib-dynload&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;/usr/local/lib/python3.12/dist-packages&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;/usr/lib/python3/dist-packages&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Normalmente, el orden es el siguiente:&lt;/p&gt;</description></item></channel></rss>