본문 바로가기

CTF/Pwnable.xyz

Pwnable.xyz pwnable_sub Write up

진짜 개쉽다. 

예전에 한번 푼 적이있었는데, 지금와서 다시풀어보니 이건 진짜 너무쉽다

아마 welcome보다 쉬울꺼다.

 

__int64 __fastcall main(__int64 a1, char **a2, char **a3)
{
  int v4; // [rsp+0h] [rbp-18h]
  int v5; // [rsp+4h] [rbp-14h]
  unsigned __int64 v6; // [rsp+8h] [rbp-10h]

  v6 = __readfsqword(0x28u);
  sub_A3E(a1, a2, a3);
  v4 = 0;
  v5 = 0;
  _printf_chk(1LL, "1337 input: ");
  _isoc99_scanf("%u %u", &v4, &v5);
  if ( v4 <= 4918 && v5 <= 4918 )
  {
    if ( v4 - v5 == 4919 )
      system("cat /flag");
  }
  else
  {
    puts("Sowwy");
  }
  return 0LL;
}

딱봐도 뭔지 알겠는가?

두개를 입력을 받고 각 입력받은 숫자는 4918을 넘으면 안된다.

그럼 어떻게 만드냐는 질문이 있겠다.

 

답은 바로 중학교 수학안에 있다. ㅋㅋㅋㅋㅋ

4918 - (-1) 을 이렇게하면?

4919가 나온다.

 

"4918 -1"

이런식으로해주면 플레가 나오는것을 확인할수있다.

'CTF > Pwnable.xyz' 카테고리의 다른 글

Pwnable.xyz pwnable_xor Write up  (0) 2019.11.17
Pwnable.xyz pwnable_misailgnment Write up  (0) 2019.11.09
Pwnable.xyz pwnable_add Write up  (0) 2019.11.09
Pwnable.xyz pwnable_welcome Write up  (0) 2019.11.09
Pwnable.xyz pwnable_note Write up  (0) 2019.10.21