이번 방학에는 Webhacking.kr을 정복해보겠다.
작년 군대에서 반 가까이 풀었지만 지금은 기억이 하나도 나지 않기에 도전해 볼 만하다고 생각한다.
Solved 순서대로 풀었다. (중간에 빈 문제는 특정 포트가 싸지방 방화벽에 막혀서 접속이 안됐던 것으로 기억한다.)
암튼 풀이는 내가 봤을 때 좀 의미있는 문제? 교훈을 얻을 수 있는 문제라던가 복습 안하면 까먹을 것 같은 문제 위주로 풀이하려고 한다.
첫 문제는 solved가 3번째로 많은 old-17을 풀이해보겠다.
입력 값을 받는 박스 하나만 덩그러니 있다.
개발자도구 - Elements 에서 소스를 볼 수 있다.
<script>
unlock=100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+1/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10+100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10-100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10+9999999;
function sub() {
if (login.pw.value == unlock) {
location.href = "?" + unlock / 10;
} else {
alert("Wrong");
}
}
</script>
중요한 부분만 갖고 왔다.
unlock이라는 변수에 아주 긴 수식을 대입하고, sub()라는 함수를 실행한다.
login.pw.value의 값이 앞서 계산된 unlock의 값이 같으면, 현재 URL에서 "?" + unlock/10 을 붙여서 이동한다.
우리는 unlock의 값만 구하면 되겠다.
을 넣어주면
끝
'Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-02 풀이 (0) | 2024.07.14 |
---|---|
[Webhacking.kr] old-54 풀이 (0) | 2024.07.12 |
[Webhacking.kr] old-38 풀이 (0) | 2024.07.12 |
[Webhacking.kr] old-16 풀이 (0) | 2024.07.11 |
[Webhacking.kr] old-15 풀이 (0) | 2024.07.11 |