<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>PicoCTF on d3bo</title><link>/ctf/pico/</link><description>Recent content in PicoCTF on d3bo</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Copyright (c) 2025 Hyas</copyright><lastBuildDate>Mon, 08 Jan 2024 12:16:22 +0100</lastBuildDate><atom:link href="/ctf/pico/index.xml" rel="self" type="application/rss+xml"/><item><title>Function overwrite</title><link>/ctf/pico/function-overwrite/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0000</pubDate><guid>/ctf/pico/function-overwrite/</guid><description>#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;string.h&amp;gt; #include &amp;lt;unistd.h&amp;gt; #include &amp;lt;sys/types.h&amp;gt; #include &amp;lt;wchar.h&amp;gt; #include &amp;lt;locale.h&amp;gt; #define BUFSIZE 64 #define FLAGSIZE 64 int calculate_story_score(char *story, size_t len) { int score = 0; for (size_t i = 0; i &amp;lt; len; i++) { score += story[i]; } return score; } void easy_checker(char *story, size_t len) { if (calculate_story_score(story, len) == 1337) { char buf[FLAGSIZE] = {0}; FILE *f = fopen(&amp;#34;flag.</description></item><item><title>x-sixty-what</title><link>/ctf/pico/x-sixty-what/</link><pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate><guid>/ctf/pico/x-sixty-what/</guid><description>#!/usr/bin/env python3 from pwn import * HOST = &amp;#34;saturn.picoctf.net&amp;#34; PORT = 64947 exe = ELF(&amp;#34;./vuln_patched&amp;#34;) context.binary = exe context.terminal = [&amp;#39;tmux&amp;#39;, &amp;#39;splitw&amp;#39;, &amp;#39;-h&amp;#39;] #context.</description></item><item><title>clutter-overflow</title><link>/ctf/pico/clutter-overflow/</link><pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate><guid>/ctf/pico/clutter-overflow/</guid><description>#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #define SIZE 0x100 #define GOAL 0xdeadbeef const char* HEADER = &amp;#34; ______________________________________________________________________\n&amp;#34; &amp;#34;|^ ^ ^ ^ ^ ^ |L L L L|^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^|\n&amp;#34; &amp;#34;| ^ ^ ^ ^ ^ ^| L L L | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ |\n&amp;#34; &amp;#34;|^ ^ ^ ^ ^ ^ |L L L L|^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ==================^ ^ ^|\n&amp;#34; &amp;#34;| ^ ^ ^ ^ ^ ^| L L L | ^ ^ ^ ^ ^ ^ ___ ^ ^ ^ ^ / \\^ ^ |\n&amp;#34; &amp;#34;|^ ^_^ ^ ^ ^ =========^ ^ ^ ^ _ ^ / \\ ^ _ ^ / | | \\^ ^|\n&amp;#34; &amp;#34;| ^/_\\^ ^ ^ /_________\\^ ^ ^ /_\\ | // | /_\\ ^| | ____ ____ | | ^ |\n&amp;#34; &amp;#34;|^ =|= ^ =================^ ^=|=^| |^=|=^ | | {____}{____} | |^ ^|\n&amp;#34; &amp;#34;| ^ ^ ^ ^ | ========= |^ ^ ^ ^ ^\\___/^ ^ ^ ^| |__%%%%%%%%%%%%__| | ^ |\n&amp;#34; &amp;#34;|^ ^ ^ ^ ^| / ( \\ | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ |/ %%%%%%%%%%%%%% \\|^ ^|\n&amp;#34; &amp;#34;.</description></item><item><title>basic-file-exploit</title><link>/ctf/pico/basic-file-exploit/</link><pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate><guid>/ctf/pico/basic-file-exploit/</guid><description>#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;stdbool.h&amp;gt; #include &amp;lt;string.h&amp;gt; #include &amp;lt;stdint.h&amp;gt; #include &amp;lt;ctype.h&amp;gt; #include &amp;lt;unistd.h&amp;gt; #include &amp;lt;sys/time.h&amp;gt; #include &amp;lt;sys/types.h&amp;gt; #define WAIT 60 static const char* flag = &amp;#34;[REDACTED]&amp;#34;; static char data[10][100]; static int input_lengths[10]; static int inputs = 0; int tgetinput(char *input, unsigned int l) { fd_set input_set; struct timeval timeout; int ready_for_reading = 0; int read_bytes = 0; if( l &amp;lt;= 0 ) { printf(&amp;#34;&amp;#39;l&amp;#39; for tgetinput must be greater than 0\n&amp;#34;); return -2; } /* Empty the FD Set */ FD_ZERO(&amp;amp;input_set ); /* Listen to the input descriptor */ FD_SET(STDIN_FILENO, &amp;amp;input_set); /* Waiting for some seconds */ timeout.</description></item><item><title>CVE-XXXX-XXXXX</title><link>/ctf/pico/cve-xxxx-xxxxx/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0000</pubDate><guid>/ctf/pico/cve-xxxx-xxxxx/</guid><description>Description Enter the CVE of the vulnerability as the flag with the correct flag format: picoCTF{CVE-XXXX-XXXXX} replacing XXXX-XXXXX with the numbers for the matching vulnerability.</description></item><item><title>Local Target</title><link>/ctf/pico/local-target/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate><guid>/ctf/pico/local-target/</guid><description>#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; int main(){ FILE *fptr; char c; char input[16]; int num = 64; printf(&amp;#34;Enter a string: &amp;#34;); fflush(stdout); gets(input); printf(&amp;#34;\n&amp;#34;); printf(&amp;#34;num is %d\n&amp;#34;, num); fflush(stdout); if( num == 65 ){ printf(&amp;#34;You win!</description></item><item><title>hash-only-2</title><link>/ctf/pico/hash-only-2/</link><pubDate>Sat, 09 Aug 2025 00:00:00 +0000</pubDate><guid>/ctf/pico/hash-only-2/</guid><description>Este reto es parecido al de hash-only-1, hay un binario con permisos SUID que ejecuta md5sum sin poner el path completo, pero en este estamos en una restricted bash y no se puede redirigir el output a un archivo y tampoco se puede modificar $PATH</description></item><item><title>hash-only-1</title><link>/ctf/pico/hash-only-1/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>/ctf/pico/hash-only-1/</guid><description>bool main(void) { basic_ostream *pbVar1; basic_ostream&amp;lt;&amp;gt; *pbVar2; char *__command; long in_FS_OFFSET; bool bVar3; allocator&amp;lt;char&amp;gt; local_4d; int local_4c; basic_string&amp;lt;&amp;gt; local_48 [40]; long local_20; local_20 = *(long *)(in_FS_OFFSET + 0x28); pbVar1 = std::operator&amp;lt;&amp;lt;((basic_ostream *)std::cout, &amp;#34;Computing the MD5 hash of /root/flag.</description></item><item><title>Heap 2</title><link>/ctf/pico/heap2/</link><pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate><guid>/ctf/pico/heap2/</guid><description>#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;string.h&amp;gt; #define FLAGSIZE_MAX 64 int num_allocs; char *x; char *input_data; void win() { // Print flag char buf[FLAGSIZE_MAX]; FILE *fd = fopen(&amp;#34;flag.</description></item><item><title>PIE TIME 2</title><link>/ctf/pico/pietime2/</link><pubDate>Wed, 06 Aug 2025 00:00:00 +0000</pubDate><guid>/ctf/pico/pietime2/</guid><description>#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;signal.h&amp;gt; #include &amp;lt;unistd.h&amp;gt; void segfault_handler() { printf(&amp;#34;Segfault Occurred, incorrect address.\n&amp;#34;); exit(0); } void call_functions() { char buffer[64]; printf(&amp;#34;Enter your name:&amp;#34;); fgets(buffer, 64, stdin); printf(buffer); unsigned long val; printf(&amp;#34; enter the address to jump to, ex =&amp;gt; 0x12345: &amp;#34;); scanf(&amp;#34;%lx&amp;#34;, &amp;amp;val); void (*foo)(void) = (void (*)())val; foo(); } int win() { FILE *fptr; char c; printf(&amp;#34;You won!</description></item></channel></rss>