CTF 대회 준비 및 연습을 위해서 워게임을 시작했다. 웹 해킹 문제가 있는 'webhacking.kr/'부터 해보자.

'webhacking.kr'에는 다음과 같이 많은 문제들이 있고 해당 문제 번호 옆에는 포인트가 적혀있다. 우선 유일한 50점짜리 문제인 15번부터 풀려고 했다.

그런데 15번 문제를 클릭하자마자 'Access_Denied'라고 alert 창이 뜨고 확인을 누르면 문제 목록 창으로 돌아갔다. 소스코드도 없고.. 당황스러워서 다음으로 점수가 낮은 6번을 풀려했는데 php코드 역시 익숙하지 않아 14번부터 풀기로 했다.

14번 문제에 들어가면 그냥 인풋 박스와 체크 버튼이 있다.. 개발자 도구를 통해 소스코드를 열어보았다.

<script> 부분을 보니 변수 ul에 이 문서의 url을 저장해두었고 다음 코드에서 ". kr"이 시작되는 인덱스 번호를 ul에 저장했다. 해당 문서의 url은 'https://webhacking.kr/challenge/js-1/'이고 인덱스를 직접 세보면 되겠지만 그냥 콘솔 창을 이용하였다.

'.kr'이 시작하는 인덱스의 값은 18이고 30을 곱한 값을 또 ul에 저장해주었으므로 최종적으로 ul의 값은 540이다.
다음 조건문을 보니 ul과 인풋의 값이 같다면 {location.href="?"+ul*pw.input_pwd.value;}를 실행한다.

최종 ul 값인 540을 입력하고 체크 버튼을 누르니 100점을 얻었다는 축하 메시지를 받았다.
{location.href="?"+ul*pw.input_pwd.value;} 이 코드를 해석하지 않고 그냥 540을 입력하고 점수를 받았는데 축하 메시지 창의 url을 보니 저 코드는 문제의 url 뒤에 ul과 인풋 값의 곱인 291600(540*540)을 ?와 붙여서 이동하겠다는 코드였다.
'CTF 연습' 카테고리의 다른 글
| Webhacking.kr-old17(10) (0) | 2021.04.29 |
|---|---|
| Webhacking.kr-old16(100) 문제 풀이 (0) | 2021.03.16 |
| Webhacking.kr-old15(50) 문제 풀이 (0) | 2021.03.16 |