Ce CTF a été organisé par la Nullcon pour sa 7ème édition, qui aura lieu à Goa. Ce CTF indien propose plusieurs catégories comme du Web, OSINT, Pwn, RE, Crypto, Prog et MISC. Ceci est le Write Up le plus court de tout l’histoire de l’humanité x) .
Sommaire
- Reconnaissance
- Trouver le flag
Introduction
On télécharge un fichier tryme.txt qui contient différents code source du C++, du Javascript natif, du java et autres …
#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>
void Run( const std::string& v, int tgt, int start ) {
for( ; tgt >= 2 * start + 1; ++start )
Run( v + ' ' + boost::lexical_cast<std::string>( start ), tgt - start, start + 1 );
std::cout << v << ' ' << tgt << std::endl;
}
int main() {
Run( std::string(), 10, 1 );
getchar();
}
$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$.__+"(\\\""+$.$$$$+(![]+"")[$._$_]+$.$_$_+"\\"+$.__$+$.$__+$.$$$+"{"+$.__+"\\"+$.__$+$.$_$+$.___+"\\"+$.__$+$.$_$+$.__$+"\\"+$.__$+$.$$_+$._$$+"_\\"+$.__$+$.$_$+$.__$+"\\"+$.__$+$.$$_+$._$$+"_\\"+$.__$+$.$_$+$.$$_+$._$+$.__+"_"+$.__+"\\"+$.__$+$.$_$+$.___+$.$$$_+"_"+$.$$$$+(![]+"")[$._$_]+$.$_$_+"\\"+$.__$+$.$__+$.$$$+"}\\\"\\"+$.$__+$.___+")"+"\"")())();
[...]
Trouver le flag
Le code le plus simple à tester est le javascript natif, essayons le premier morceau.
Ce n’est pas le flag. Par contre si on teste les blocs suivants, on obtiens:
Et hop +100 pts ;) .