<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DVCTF on Anthrace | CTF Writeups</title><link>https://anthr4ce.github.io/tags/dvctf/</link><description>Recent content in DVCTF on Anthrace | CTF Writeups</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 26 May 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://anthr4ce.github.io/tags/dvctf/index.xml" rel="self" type="application/rss+xml"/><item><title>DVCTF 2025 - WEB LouvreArchives</title><link>https://anthr4ce.github.io/ctf-writeups/dvctf-2025/web-louvrearchives/</link><pubDate>Mon, 26 May 2025 00:00:00 +0000</pubDate><guid>https://anthr4ce.github.io/ctf-writeups/dvctf-2025/web-louvrearchives/</guid><description>&lt;hr&gt;&#10;&lt;p&gt;&lt;img src="images/img1.png" alt="Screenshot"&gt;&lt;/p&gt;&#10;&lt;p&gt;In this challenge, the goal is to access &lt;code&gt;flag.webp&lt;/code&gt; as indicated in the source code.&lt;/p&gt;&#10;&lt;p&gt;While exploring the page, I noticed a long base64-encoded string. Once decoded and reorganized, it contained several &lt;code&gt;.webp&lt;/code&gt; images with unusual names like &lt;code&gt;1991781613.webp&lt;/code&gt;, &lt;code&gt;1273827392.webp&lt;/code&gt;, etc.&lt;/p&gt;&#10;&lt;p&gt;Checking the source code:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="images/img2.png" alt="Screenshot"&gt;&lt;/p&gt;&#10;&lt;p&gt;We understand that filenames are generated using Python&amp;rsquo;s &lt;code&gt;getrandbits(32)&lt;/code&gt;, which produces 32 random bits via the &lt;code&gt;random.getrandbits&lt;/code&gt; function.&lt;/p&gt;&#10;&lt;p&gt;The interesting point here is that this function uses the &lt;strong&gt;Mersenne Twister&lt;/strong&gt; generator, a PRNG (Pseudo-Random Number Generator) that is &lt;strong&gt;not cryptographically secure&lt;/strong&gt;.&lt;/p&gt;</description></item></channel></rss>