분류 전체보기
-
[Webhacking.kr] Challenge 17Wargame/Webhacking.kr 2023. 4. 9. 10:22
Challenge 17을 풀어보자. 문제 화면을 보면 Challenge 14처럼 입력 창과 'check' 버튼, 검은 화면이 전부다. 마찬가지로 페이지 소스 코드로 가는 링크가 없으므로, 크롬의 개발자 도구를 이용해보자. 부분의 sub 함수를 보면 입력하는 pw의 값이 unlock의 값과 같으면 문제가 해결된다. unlock은 굉장히 긴 계산식으로 하나하나 할 수도 있지만, 복사하여 콘솔 창에 넣어 계산이 되도록 하자. 결과적으로 unlock은 7809297.1의 값이라는 것을 알 수 있다. 도출한 결과를 입력해주면 문제가 해결된다.
-
[Webhacking.kr] Challenge 14Wargame/Webhacking.kr 2023. 4. 9. 10:12
Challenge 14를 풀어보자. 문제 화면을 보면 입력 창과 'check' 버튼, 그리고 검은 화면이 전부다. 페이지 소스 코드를 보는 링크가 없으므로 크롬 개발자 도구를 이용해보자. 부분의 ck 함수를 보면, 문제 페이지의 URL에서 '.kr'의 인덱스 번호를 ul에 저장한다. 그리고 그 값에 30을 곱해 input_pwd에 넣어주면 문제가 해결된다. '.kr'의 인덱스는 생략이 되어 있지만 'https://'를 포함해서 계산해야 하며 18이 된다. 그러므로 input_pwd에 540을 넣고 check를 하면 문제가 해결된다. 따로 창이 나타나지는 않고, 메인 페이지로 가보면 문제가 해결되어 있다.
-
[Webhacking.kr] Challenge 54Wargame/Webhacking.kr 2023. 4. 1. 02:02
Challenge 54를 풀어보자. 문제 화면을 보면 Password is 라는 문장과 함께 뒤의 값이 계속해서 변한다. 변화하는 값이 FLAG{ 라는 것은 알았지만, 동체시력의 한계 탓인지 더 이상은 모르겠다.. 소스 코드를 보여주는 링크가 없으므로, 크롬 개발자 도구를 열어서 페이지를 확인해보도록 하자. 를 보면 run과 answer의 함수가 있다. run 함수는 값을 받아와 그것을 return하는 것 같다. answer는 aview에 값을 입력하는데 setTimeout이 작아 굉장히 빠르게 넘어가는 것으로 보인다. 이 answer 함수가 페이지에 비밀번호를 보여주는 함수라고 생각하면 될 듯하다. 빠르게 넘어가는 비밀번호를 강제로 멈춰주면서 FLAG를 확인해 문제를 해결하면 된다. Sources 페이..
-
[pwnable.kr] Level 5 - passcodeWargame/pwnable.kr 2023. 4. 1. 01:49
Level 5 - passcode를 풀어보자. 문제를 보면 아들이 C 코드로 작성한 문제가 있는 파일을 컴파일한 것 같다. 엄마는 말렸지만, 말을 안 듣는 것 같다.. Kali에서 ssh로 해당 문제에 접속을 해보도록 하자. 존재하는 파일들을 보면, flag와 passcode 파일 그리고 passcode의 소스 코드가 있다. 작성된 소스 코드를 먼저 보도록 하자. login, welcome, main의 세 함수로 이루어진 파일이다. login에서는 두 개의 passcode를 입력받고, 그 값을 비교해 문제 해결 여부를 보여준다. welcome에서는 name을 입력받고, 입력받은 name의 Welcome 문구를 보여준다. 마지막으로 main은 welcome 함수와 login 함수를 실행하는 것 외에 특별한..
-
[Webhacking.kr] Challenge 39Wargame/Webhacking.kr 2023. 3. 31. 23:50
Challenge 39를 풀어보자. 문제 화면을 보면 view-source 페이지의 링크와 input 값을 받는 곳, 제출 버튼이 있다. view-source 페이지로 가 소스 페이지를 보도록 하자. 이번 문제는 SQLi를 이용해 문제를 해결하는 듯하다. str_replace 함수가 '\\'는 없애고, 작은 따옴표는 두 개로 만든다. 그리고 substr 함수를 통해 입력한 id에서 15번째 문자까지 다시 id에 저장을 한다. 그 후 select 문의 where 절을 통해 id의 길이가 14 미만이며, id가 Post한 id와 일치하면 문제가 해결된다. 총 15개의 문자를 입력을 할 텐데, 어떻게 입력하는 id를 일치시킬 수 있을까? 위의 소스 코드에서 select 구문의 id 부분을 잘 보면, 작은 따옴..
-
[Webhacking.kr] Challenge 16Wargame/Webhacking.kr 2023. 3. 31. 23:36
Challenge 16을 풀어보자. 문제 화면을 보면 큰 별과 작은 별이 보인다. 따로 소스 코드를 보여주는 페이지의 링크가 없으니, 크롬 개발자 도구를 이용해보자. 부분을 보면 cd 파라미터의 값을 받는 mv 함수가 있다. 그리고 x, y의 값을 받는 kk 함수가 있는데, 이것은 랜덤하게 색깔이 정해지는 '*'를 출력하는 함수로 보인다. 크롬 개발자 도구에서 cd 값에 124를 직접적으로 입력을 해보자. 그랬더니, old-16 Pwned! 알림창이 나타나며 문제가 해결된다. 이 문제는 다르게 풀이를 할 수도 있다. (아마 이게 원래 출제한 의도인 것 같다.) 위의 소스 코드에서 mv 함수를 자세히 보면, cd 값에 따라 별이 움직이는 것을 볼 수 있다. 저 값은 숫자로 되어 있지만, ascii 코드를 ..
-
[Webhacking.kr] Challenge 26Wargame/Webhacking.kr 2023. 3. 31. 23:18
Challenge 26을 풀어보자. 문제 화면을 보면 view-source 링크가 있다. 힌트를 보기 위해 소스 페이지로 가보도록 하자. 코드를 보면 SQLi를 이용한 공격인 듯하다. preg_match 함수 때문에 직접적으로 admin을 넣으면 'no!'가 출력된다. 그리고 입력하는 id 파라미터 값에 urldecode 함수가 적용된 값이 다시 id에 입력이 된다. 결과적으로 id에 admin 문자를 넣으면 문제가 해결된다. 우선 admin을 넣어보자. 당연하게도 'no!'가 출력되며 문제가 해결되지 않는다. %의 인코딩 값인 %25를 admin의 인코딩 값인 6164696d6e의 각 값 앞에 넣었다. 하지만 인식이 되지 않는 것인지, 문제가 해결되지 않았다. 이것을 어떻게 해결해야 하는지 생각을 해보..
-
[Webhacking.kr] Challenge 15Wargame/Webhacking.kr 2023. 3. 31. 22:36
Challenge 15를 풀어보자. 문제 화면을 보기 위해 링크로 들어가면 Access_Denied라는 알림창이 나타난다. 더 힌트를 얻을 것이 없기 때문에 Burp Suite를 이용해 분석해보자. Burp Suite에 접속하면 Request를 볼 수 있다. 특별한 것은 없어 보이므로, Repeater로 보내 값들을 변경해가며 Response를 분석해보자. 처음 보냈던 Request를 그대로 보내 Respnse를 받으면 Access Denied라는 Alert가 있는 것을 볼 수 있다. 그런데 아래에 보면, getFlag 라는 곳에 Flag를 적는다는 것을 알 수 있다. 그래서 처음 Reuqest의 뒤에 ?getFlag를 붙여 다시 요청을 해보자. Response를 보면 문제가 해결됐다는 것을 알 수 있다..