wargmae.kr 22번 php? c? 라는 문제다.

점수는 700point. 마지막 700점 짜리 web 문제다.

32bit int형? 아직 감이 안온다. 시작해보자.

들어가보니 로그인 창이 보인다. 일단 소스부터 확인하자.

생각보다 간단하다. 입력한 아이디 값을 인자로 /tmp/p7이란 파일을 실행하고 결과 값이 1이 아니거나

비밀번호 입력값과 같으면 된단다. 그렇다면 /tmp/p7 파일을 만드는 ./p7.c에 가서 소스를 확인해보자.

간단하다. nono()라는 함수가 실행되지 않으면 된다. 근데 그럴려면 i<5라는 조건에 들어가야 하는데

언뜻보면 i<0, i+5 ,i>4 이 세가지를 연결해 생각해봤을때 절대 i<5라는 조건에 들어갈수 없을 것 같다.

이 때 주최자가 주었던 힌트를 감안해 32 bit integer 형에서 오버플로우가 생긴다면 뭔가 될 것 같다.

바로 저 코드에 int형 최대값을 주고 실행해봤다.

오... 1이 아닌 이상한 값이 나왔다.

이대로 아이디와 비밀번호를 입력해주면 될 것 같다. 처음에 그대로 화면에 쳤는데 실패를 한다. 아무래

도 길이 제한이 걸려있는 것 같다. burp suit를 통해 다시 보내봤다.

성공! 700점대에서 많이 헤매고 삽질을 해서 마지막 700점대 웹문제라 긴장했는데 너무 쉬워서 맥이

빠졌다. 이제 800점댄데 또 얼마나 많은 삽질을 할지 긴장이된다.  


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

Wargame.kr keypad CrackMe  (0) 2018.01.04
wargame.kr QNA  (0) 2018.01.04
wargame.kr ip log table  (0) 2018.01.04
wargame.kr lonely guys  (0) 2018.01.04
wargame.kr dmbs335  (0) 2018.01.04
블로그 이미지

JeonYoungSin

메모 기록용 공간

,