Bace

wargame.kr - php? c? 본문

wargame.kr

wargame.kr - php? c?

Bace 2020. 2. 11. 15:34

문제는 다음과 같다.

32비트 어플리케이션의 integer type을 아냐고 물어본다.

 

문제를 들어가면 다음과 같이 나온다.

 

소스

d1과 d2를 받는데 ./p7.c 파일을 컴파일하여 /tmp/p7에 생성 후 input1을 넣은 결과가 1이 아니고 input2와 값이 맞아야 flag를 준다고 한다.

 

일단 현재 경로의 p7.c 에 들어가서 코드를 확인해보았다.

값을 입력받는데 입력받은 값이 0미만이거나 4를 초과하면 1이 되고 5미만이면 i값을 출력해준다고 하는데, i 값에 1부터 4까지 입력해도 i=i+5 때문에 어떤 값을 입력해도 결과값은 1이 된다.

 

여기서 힌트를 잘 보면 32비트 프로그램이라고 하였으므로 integer overflow를 시도해보았다.

 

p7.c 코드를 컴파일하여 32비트의 최대값을 넣어보니 1 말고 다른 값이 떴다.

 

이제 이 값을 d1과 d2에 대입해보았다.

try를 눌러보면 try again이라고 뜬다.

자세히보니 d1부분에 맨마지막 자리인 7이 잘려서 들어갔다.

소스를 보니 d1부분에 maxlength 가 걸려있었다.

maxlength 부분을 삭제하고 다시 값을 넣어봤다.

이번엔 제대로 들어갔다.

try를 누르면 flag가 나온다.

 

# Auth

'wargame.kr' 카테고리의 다른 글

wargame.kr - type confusion  (0) 2020.02.10
wargame.kr - tmitter  (0) 2020.02.10
wargame.kr - md5_compare  (0) 2020.02.10
wargame.kr - strcmp  (0) 2020.02.08
wargame.kr - md5 password  (0) 2020.02.07