47번 문제이다. 뭔가 입력하는 창이 있길래 아무거나 치고 쿼리전송 버튼을 눌러 봤지만 done이라는 문구만 나오고 아무일도 일어나지 않았다. 코드를 보면 로 주석처리가 되어 있고 코드를 보면 무슨 말인지 모르겠다. 툴을 사용하여 풀어보았다. 툴은 Burp Suite와 Proxy를 사용하였다. 우선 크롬 브라우저로 47번 문제를 들어간 후 미리 설치한 proxy를 실행시킨다. 그 다음, burp suite를 실행시키고 proxy -> intercept is on 순서대로 누른다. 문제의 입력 창에 아무 이메일이나 입력한 뒤 쿼리를 전송하면 이런 식으로 burp suite에 어떠한 정보가 출력된다. 아랫줄에 cc : 동일한 이메일을 입력한 뒤 forward버튼을 누르면 이렇게 password가 출력된다.
38번 문제이다. 입력하는 창이 하나 있는데 아무거나 입력하고 로그인 버튼을 눌러 봤지만 변화가 없다. 하지만 admin버튼을 누르면 아이피 : 입력한 문자 와 같은 형태로 출력이 된다. 코드를 보면 로 주석처리 되어 있는 부분이 있다. 웹주소 뒤에 admin.php를 입력해 보면 위에 사진과 같은 페이지로 이동하게 된다. 다시한번 코드를 보면 로 주석처리가 되어 있다. 입력창에 admin을 입력하라는 의미 같은데 그대로 입력하고 로그인버튼을 누르면 you are not admin이라는 문구가 나온다. 아까 admin.php의 출력 구조를 본떠서 본인의 아이피 : admin을 입력해 준 뒤 login버튼을 누르고 admin버튼을 누르면 클리어
42번 문제이다. download버튼이 두 개 있는데 첫번째 버튼을 누르면 test~~라는 문구가 나오고 두번째 버튼을 누르면 Access Denied라는 알림창이 나온다. 코드를 보면 ?down=dGVzdC50eHQ라는 부분이 있는데 이걸 주소창 뒤에 입력해 주면 첫번째 다운로드 버튼을 눌렀을 때와 같으 창으로 이동한다. dGVzdC50eHQ를 base64로 디코딩 해보면 test.txt가 된다. 이를 역이용하여 test.zip을 인코딩하면dGVzdC56aXA=이라는 코드가 나오고, 주소창 옆에 ?down=dGVzdC56aXA=을 입력하면 알집 파일을 하나 다운로드 할 수 있다. 알집파일에는 비밀번호가 걸려 있는데 이는 알집 비밀번호를 푸는 프로그램을 다운받아 풀수 있다. 압축을 해제하면 텍스트 파일이..
문제를 클릭하면 이런 페이지가 나온다. index.phps를 클릭하면 코드를 볼 수 있다. 여기서 id값이 admin으로 나와야 문제가 해결되는데 if문에서 eregi함수를 이용해 id에 admin이 들어가면 no!를 출력하도록 되어 있고, 아랫줄엔 id값을 한번 디코딩한다고 쓰여 있다. 결과적으로 id값을 인코딩한 값이 답이 되어야 하는데, 인터넷에 url인코딩 표를 찾아 admin을 바꾸면%61%64%6D%69%6E가 된다. 하지만 쿠키값에 해당 값을 입력하면 no가 출력된다. 한번 더 인코딩하여 나온 %%36%31%%36%34%%36%44%%36%39%%36%45를 id값으로입력해 주면 클리어
24번 문제이다. F12를 누르면 주석 부분에 index.phps라고 쓰여 있다. 사이트 주소 뒤에 그대로 넣어 주면 문제와 관련된 코드를 볼 수 있다. $ip값이 127.0.0.1이 되면 문제가 해결되는데, 위에서 "12", "7.", "0."을 제거하여 127.0.0.1을 그대로 입력하면 1로 바뀌어 문제를 해결할 수 없다. 따라서 1 "12" 27 "7." .0 "0." .0 "0." .1 이런 식으로 입력해 주면 제대로 된 값을 얻을 수 있다. $ip=$REMOTE_ADDR;이므로 콘솔에 javascript:document.cookie="REMOTE_ADDR=112277..00..00..1;"; 를 입력해 주면 문제가 해결된다.
문제를 클릭하면 이런 창이 나오고 1번과 마찬가지로 index.phps를 클릭하면 이런 코드가 나온다. 코드를 읽어보면 $val_id를 guest, $val_pw를 123qwe로 지정해 주고 그 값을 base64로 20번 인코딩해준다. 그 다음 1~8의 숫자를 각각의 특수문자로 대체해 주고 user라는 쿠키에는 $val_id의 값을, password에는 $val_pw의 값을 넣어 준다. 다시 그 값에서 아까 특수문자로 바꾸었던 부분을 원래대로 되돌린 다음, 디코딩을 20번 한다. 결과적으로 나온 값의 id와 password가 모두 admin이 되면 문제가 해결된다. $가 붙은 변수는 쿼리이기 때문에 중간에 나온 user와 password값을 변경해 준다. 20번 디코딩해서 admin이 나와야 하므로 역으..
문제를 들어가면 level = 1이라고 쓰여 있고 그 아래에 index.phps라고 써 있는 부분이 있다. index.phps를 클릭하면 이런 코드가 나온다. 코드를 읽어보면 user_lv라는 값에 의해 문제가 좌우된다는 것을 알 수 있다. if문을 보면 변수가 6이상일 때 값을 1로 바꾸어 주고 5 초과일 때 문제가 해결된다는 것을 알 수 있다. 따라서 5=6) $_COOKIE[user_lv]=5.5; 로 바꾸어 보았지만 이 창에 쓰여 있는 코드는 사이트를 벗어나면 적용되지 않으므로 소용이 없었다. 이 문제는 단순히 변수 값을 바꾸는 것이 아니라 쿠키값을 변경해야 하는 문제이고 쿠키 값을 바꿀 때는 alert(document.cookie="변수명 = 값")을 사용한다. 콘솔에 alert(document..
문제를 클릭하면 이런 창이 나온다. 잠시 기다려 보면 is 뒤에 숫자와 문자가 무작위로 나오고 마지막엔 ?가 나오고 실행을 멈춘다. 문자가 나오는 속도가 너무 빨라 코드에서 if(x.responseText) setTimeout("answer("+i+")",100);이 부분을 고쳤다. 1000ms가 1초이기 때문에 100은 0.1초이다. 콘솔에서 100을 2000으로 고치고 다시 실행시켜 보니 속도가 확연히 느려진 게 보였다. 하지만 문자를 보고 기록해둔 다음 제출해 보았지만 정답이 아니었고 다른 방법을 사용해 보았다. aview.innerHTML=x.responseText;를 aview.innerHTML=aview.innerHTML + x.responseText;로 바꾸어 매번 문자가 바뀌지 않고 한줄로..