r500 – need a slave
Revision for “r500 – need a slave” created on 27 de dezembro de 2014 às 05:40:49
Título | r500 - need a slave |
---|---|
Conteúdo | <blockquote>
<p id="pergunta" style="text-align: justify">Reverse me</p>
</blockquote>
<h2>Solução</h2>
<p style="text-align: justify">Baixe o arquivo.</p>
Verifique que tipo de arquivo se trata.
<pre class="lang:default decode:true">$ file cbae01eebf5ec7384dcf92507b640182</pre>
<pre class="lang:default decode:true ">$ cbae01eebf5ec7384dcf92507b640182: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x2809a0eb366d3859f4e2fcc74a8bb49e00b2ddbf, not stripped2</pre>
Dê permissão de execução no arquivo.
<pre class="lang:default decode:true ">$ chmod +x cbae01eebf5ec7384dcf92507b640182</pre>
Executando o arquivo obtemos a seguinte saída como na imagem abaixo.
<a href="http://ctf-br.org/wp-content/uploads/2014/12/r500.jpg"><img class="alignnone size-full wp-image-452" src="http://ctf-br.org/wp-content/uploads/2014/12/r500.jpg" alt="r500" width="739" height="578" /></a>
Instale o hte.
<pre class="lang:default decode:true ">$ apt-get install ht -y</pre>
Depois carregue o binário no hte.
<pre class="lang:default decode:true ">$ hte cbae01eebf5ec7384dcf92507b640182</pre>
Depois de carregado pressione “espaço” e selecione o modo “elf/image”
<a href="http://ctf-br.org/wp-content/uploads/2014/12/r500_1.jpg"><img class="alignnone size-full wp-image-453" src="http://ctf-br.org/wp-content/uploads/2014/12/r500_1.jpg" alt="r500_1" width="739" height="578" /></a>
Próximo passo é achar a função palindrome . Pressione F5 para abrir o goto e pesquise pelo “palindrome″.
<a href="http://ctf-br.org/wp-content/uploads/2014/12/r500_2.jpg"><img class="alignnone size-full wp-image-454" src="http://ctf-br.org/wp-content/uploads/2014/12/r500_2.jpg" alt="r500_2" width="739" height="578" /></a>
<span class="fg-7 bg-4">Selecione "xref c</span><span class="fg-15 bg-4 bright">8048c6a"</span> dentro da "palindrome" e pressione enter.
<a href="http://ctf-br.org/wp-content/uploads/2014/12/r500_3.jpg"><img class="alignnone size-full wp-image-456" src="http://ctf-br.org/wp-content/uploads/2014/12/r500_3.jpg" alt="r500_3" width="739" height="578" /></a>
Podemos observar uma chamada "fibonacci". CTRL + C para sair do hte.
<a href="http://ctf-br.org/wp-content/uploads/2014/12/r500_4.jpg"><img class="alignnone size-full wp-image-455" src="http://ctf-br.org/wp-content/uploads/2014/12/r500_4.jpg" alt="r500_4" width="739" height="578" /></a>
Carregue o binário no gdb.
<pre class="lang:default decode:true ">$ gdb cbae01eebf5ec7384dcf92507b640182</pre>
Realize um break point.
<pre class="lang:default decode:true ">(gdb) break * 0x8048c8d</pre>
Execute o binário dentro do gdb.
<pre class="lang:default decode:true ">(gdb) run</pre>
Realize um dump da memória.
<pre class="lang:default decode:true ">(gdb)x/98xc &hidden</pre>
Imprima o resultado.
<pre class="lang:default decode:true ">(gdb)print(char*)(0x804a2c0+39)</pre>
<h3>Flag</h3>
<code>IfIW!nY0uB3com3MySl@ve</code>
<h3>Criado por</h3>
XShellCTF
<h3>Extra</h3>
<a href="https://asciinema.org/a/14329" target="_blank">https://asciinema.org/a/14329</a> |
Resumo |
Recent Posts
© 2014 - Todos os Direitos Reservados