시스템 해킹

[Whois] 시스템 해킹 - OOB(Out-Of-Bound)

美味코드 2021. 12. 6. 22:08

v4를 통해 숫자를 입력받고 fakekey[v4] 배열처럼 생겼지만 아닌 변수에 캐릭터형을 입력받습니다.

처음 while조건을 빠져나가기 위해선 fakekey[0] 번째가 #이어야 합니다.

원래 10(0x23) 이었으나 %c로 받으므로 보기 쉽게 캐릭터형으로 바꿔주었습니다.

 

* fakekey[v4] 입력시 주의할 점: " %c" => 스페이스바

 

처음에 fakekey[0] 에 ' #'을 입력했을 때는 쉘로 들어가지 않고 root@kali 머무르고 있었습니다.(루트)

그 이유는 20번째 줄 조건문을 충족시키지 못했기 때문인데 key에 ILOVEPWN을 넣어주어야 했고,

17번째 줄부터 key[0] 번째부터 입력된다는 것을 알았습니다.

 

키는 char[] 입니다.

 

해당 변수에 들어가보니 fakekey보다 위에 key가 있었고 10 차이가 납니다.

 

16칸이라는 의미를 알게 되었고, 이는 -16부터 리틀엔디안 방식을 통해 입력됩니다.

그래서 문자열을 기입해 준 후 fakekey is에서 다시 루프를 돌지 않고 무사히 ' #' 을 입력하여 flag 값을 확인할 수 있었습니다.