[ Inicio ] [ Hacking ] [ CTFs ] [ Rant ]
.:: Brenn0 Weblog ::.

Título : Weekly /dev/random 0x0
Autor : brennords
Data : 11/11/2019
            

Esse pretende ser o primeiro de uma série de textos que publicarei toda segunda com os bagulhos aleatórios interessantes que eu encontrar e estiver estudando.

Um monte de links sobre o monte de assuntos que se abrange em segurança da informação. Já me peguei usando esse compilado umas vezes pra reencontrar uns bons textos sobre format strings que eu sabia que tinha visto em algum lugar mas não lembrava como encontrar: https://github.com/brerodrigues/Infosec_Reference.

Sempre acabo voltando aos exercicios do exploit-exercises quando me sinto enferrujado na exploração de binarios. Foi numa dessas voltas que me deparei com o exploit-education. Me interessei principalmente nos desafios da Phoenix que se diz uma sucessora espiritual da Protostar. E ainda tem binários 64 bits, o que não tinha na Protostar. Talvez dessa vez eu chegue a Fusion: https://exploit.education/

Observando o código do desafio format-two da Phoenix, fiquei curioso sobre a linha de código que faz memset(buf, 0, sizeof(buf));. Eu já tava ligado que servia para inicializar a área de memória reservada pela variável enchendo de 0’s e evitar que vinhesse lixo, mas porque não 1, 2 ou outro valor arbitrário? Descobri algumas respostas no stack overflow: https://stackoverflow.com/questions/15018542/why-do-we-need-to-memset-always-with-zero

Estava debuggando quando passei por uma chamada a printf e percebi que o programa não imprimiu nada após a chamada. O texto na tela só veio surgir numa chamada para puts mais na frente, mesmo essa chamada para puts imprimisse uma mensagem não relacionada ao primeiro printf. Fiquei curioso e fui pesquisar a razão e descobri, talvez o que já deveria saber, que printf não simplesmente “imprim na tela” e sim escreve em stdout: