[BUUCTF] PWN —— picoctf_2018_leak_me (pone '\ x00' omite la salida de datos confidenciales)

picoctf_2018_leak_me

anexo

paso

  1. La inspección de rutina, la protección nx de 32 bits está activada
    Inserte la descripción de la imagen aquí
  2. Ejecutar localmente para ver la situación general.
    Inserte la descripción de la imagen aquí

  3. Inserte la descripción de la imagen aquí
    El flujo aproximado del programa de carga ida de 32 bits es ingresar el nombre primero y luego ingresar la contraseña. Debe haber un password.txt en la máquina de destino para verificar si la entrada es correcta. Si la entrada es correcta, el se llamará a la función de bandera, y la función de bandera imprimirá la bandera.
    Inserte la descripción de la imagen aquí
  4. La posición del parámetro v5 (nombre de almacenamiento) y el parámetro s (bandera de almacenamiento) en la pila no está muy lejos, y cuando el parámetro v5 se lee en los datos, el parámetro s se puede sobrescribir. La
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí
    diferencia entre ellos 0x154-0x54=0x100, y la longitud de los datos que ingresamos para v5 es exactamente 0x100, puede completar v5, seguido de s, 34 líneas en la función principal imprimirán v5, las posiciones se detendrán cuando encuentre '\ x00', y el contenido en v5 es ahora 0x100*a+password+'\x00'*4c, por lo que la contraseña se imprimirá junto con él.
    Aquí uso cíclico para generar la cadena para leer la contraseña para
    Inserte la descripción de la imagen aquí
    obtener la contraseñaa_reAllY_s3cuRe_p4s$word_f85406
  5. A continuación, re-nc e ingrese la contraseña
    Inserte la descripción de la imagen aquí

No es necesario que escriba exp en absoluto para esta pregunta, pero escribiremos sobre ella después de leer el artículo.

from pwn import *

p = remote("node3.buuoj.cn",28171)

password = "a_reAllY_s3cuRe_p4s$word_f85406"
p.sendlineafter("What is your name?\n","A")
p.sendlineafter("Please Enter the Password.\n",password)

p.interactive()

Supongo que te gusta

Origin blog.csdn.net/mcmuyanga/article/details/113540092
Recomendado
Clasificación