[H3X0R CTF 2016]
Web_10
cmp
대회 초중반쯤 공개 된 10점짜리 web 문제입니다. 친구들이랑 저녁밥 먹고 다시 들어와 보니 공개 되어 있었죠.. 확인 해 봅시다.
패스워드를 입력하는 text box와 submit 버튼 하나가 있습니다.
여기에 아무 문자나 입력을 하고 submit 해 봅시다.
A를 submit 해 보았더니 2라는 결과값을 뱉어냈습니다.
d를 입력 했을 때는 -33이 나왔습니다.
PHP strcmp() 함수의 반환값의 특성을 이용한 문제인 것 같습니다. 이 문제에서 str1은 flag, str2는 string을 가리키고 있는 것 같습니다.
아스키 코드 상으로 A보다 2만큼 위에 있는 문자는 C입니다.
C를 입력해주니 15라는 값을 반환 해 주었습니다. C에 이어 다른 글자를 입력 해 주었을 때 위와 같이 양/음수로 나누어 출력을 해 주었습니다.
다른 문자들을 집어 넣어 2번째 문자는 0임을 알 수 있었습니다. 올바른 문자를 입력 했을 때 반환하는 숫자 값이 1씩 줄어드는 것을 보니, 이 값은 남은 string의 길이 같습니다. flag의 총 글자 수는 16인 것을 여기서 알 수 있었습니다.
사실 python으로 스크립트를 작성하여 브포를 돌려볼까도 생각 해 봤지만, 음수도 있고, 반환하는 숫자 값도 일정하지 않아 직접 손으로 브포를 했습니다...
(저 숫자가 남은 글자 수인 것을 알아 낸 타이밍이 4자 이상 찾았을 때라... 귀찮기도 했습니다.)
flag is C0MP4R3_15_900D!
'CTF > H3X0R CTF 2016' 카테고리의 다른 글
[H3X0R CTF 2016] Web+Pwnable_120_Simple_Test(미완) (0) | 2016.05.16 |
---|---|
[H3X0R CTF 2016] Misc_20_is_this_real_hex (0) | 2016.05.16 |
[H3X0R CTF 2016] Web_63_php_encrypt (0) | 2016.05.16 |
[H3X0R CTF 2016] Misc_1_mic_no_check (0) | 2016.05.16 |
[H3X0R CTF 2016] Reversing_200_RPG Game (0) | 2016.05.16 |