워게임 사이트 써니나타스 문제를 풀어 보도록 하겠습니다. 문제의 해답을 보시기 전에 직접 풀어 보시기 바랍니다.
문제를 보면 창은 간단하게 나옵니다. ID / PW 입력하여 성공하면 Authkey를 알려주는 것 같습니다.
그럼 아무거나 입력을 한번 해보도록 하겠습니다.
ID / PW 값을 다르게 입력해보고, 똑같이 입력을 직접 해보시기 바랍니다. 그럼 해당 화면이 어떻게 입력을 했을때 나오는지 보실수 있으실 겁니다.
팝업창이 뜨는걸 확인을 했으니 해당페이지의 소스를 한번 보도록 하겠습니다.
소스에 script 부분을 보시면 chk_form() 함수를 사용하여 id값과 pw값을 불러와 비교를 하는걸 보실수 있으십니다.
if - 만약 id와 pw값이 같으면 alert 창을 띄워 "You can't join! Try again" 메시지를 띄우고 id / pw 값을 초기화를 합니다.
else - id와 pw값이 다르면 submit() 함수가 실행되어 어떠한 행위를 하는 것 같네요.
그런데 주석 된 부분에 Hint 를 보시면 Join / id = pw (id와 pw는 값이 같아야한다) 이렇게 써져 있네요. 뭔가 앞뒤가 맞지를 않네요...
그럼 여기서 유추를 할수 있는건 자바스크립트를 우회하여 submit() 함수를 호출해야 된다는걸 알수 있습니다.
방법은 여러가지가 있겠지만 저는 Burp Suite 툴을 사용하도록 하겠습니다. (모르시는 분들은 해당글 참고 하시면 되겠습니다)
■ Burp Suite(버프스위트) Proxy 설정 방법
확인을 해보면 Raw 부분에 id / pw 값이 나오는걸 보실수 있습니다. 여기서 부터는 어떻게 해야되는지 한번씩 생각을 해보시기 바랍니다. (팁을 드리면 해당 부분을 수정이 됩니다.)
'Code::War Game > suninatas' 카테고리의 다른 글
써니나타스 (Suninatas) 6번 문제 풀이 (0) | 2018.07.10 |
---|---|
써니나타스 (Suninatas) 5번 문제 풀이 (0) | 2018.07.03 |
써니나타스 (Suninatas) 4번 문제 풀이 (0) | 2018.07.02 |
써니나타스 (Suninatas) 3번 문제 풀이 (0) | 2018.06.25 |
써니나타스 (Suninatas) 1번 문제 풀이 (0) | 2018.06.14 |