인디안 보호구역
문제 풀이 내 IP주소와 접속 정보가 보이고, 그 밑에는 Wrong IP라고 나오는 것으로 보아 IP를 조작해야 한다고 생각이 들었다. 아래 주석처리된 source 페이지 외에는 별다른 특이점을 발견할 수 없었기에 문제 url에 index.phps 라고 덧붙여 해당 소스 페이지에 들어갔다. (http://webhacking.kr/challenge/bonus/bonus-4/index.phps) [사전 설명] extract() 함수란? 배열을 인자로 가지며, 배열 안의 인덱스를 변수화 시킨다.(?) 예를 들어, Info[ip] = 123, Info[mac]=456 일 때, extract(Info)를 호출하면 ip=123, mac=456 이라는 두개의 변수가 생성된다. *변수 명이 충돌하면, 기존 변수를 덮어..
문제 풀이 랭킹 시스템이다. 아무것도 몰라서 1번 아이디를 클릭해봤는데 HIT가 하나 올라갔다..!! 신기해서 또 눌러보니까 ‘no!’라는 알림창만 뜰 뿐 더 이상 HIT가 올라가지 않는다. 다른 아이디를 눌러도 마찬가지였다. 처음과는 다르게 카운트가 올라가지 않는다. 맨 밑의 Join 버튼을 눌러보니 알림창으로 ‘내 아이디’가 화면에 노출되었다. 무슨 문젠지 아직 감이 안잡히므로 스크립트를 확인하기로했다. 잘 안보여서 확대해봤다. (1번 아이디의 속성) 1번부터 쭉 나열된 모든 ID들은 각각 위와 동일한 속성을 가지고 있었다. 그 중 눈에 띄는 것은 클릭 시, ‘?hit=USERID’ 의 url로 이동된다는 것. 카운트를 올리기 위해선 해당 url로 진입해야한다. 계속 거부당하고 있지만. (Join 버..
문제 풀이 회색 컨테이너 안의 ‘O’문자와 ‘buy lotto’ 라는 문자 사이에 실마리가 있을 것 같다. 특히 ‘O’문자에 마우스 포인터를 갖다 대면 ‘yOu’라는 글자로 바뀌고, 떼면 다시 ‘O’로 돌아온다. (16번 문제에서 배운 onmouseover, onmouseout) 예상대로 ‘O’문자는 hackme라는 도발적인 id를 가진 태그 문자열이었다. 마우스와 관련된 속성이 3가지 있었는데 종류는 아래와 같다. onclick : 클릭 시 posleft 값을 1 증가시킨다. 만약 posLeft 값이 800이 되면 링크를 제공한다. onmouseover : 마우스 포인터를 갖다 대면 문자열을 ‘yOu’로 변경한다. onmouseout : 마우스 포인터를 떼면 문자열을 ‘O’로 변경한다. 결국 posLe..
“스크립트 분석 -> 실행 -> 문제 해결” 문제 분석 - 코드 확인 페이지 스크립트를 확인. >> ‘F12’ 를 눌러서 크롬 개발자 도구를 연다. >> ‘Elements’ 패널에서 페이지 요소 중 특이한 점 있는지 확인한다. >> 입력 폼의 객체명은 pw이며, 입력시 전달될 문자의 객체명은 input_pwd이고 text형식을 갖는다. >> ‘check’ 버튼은 ck() 함수와 링크되어 있고, ck() 함수는 script에 정의되어 있다. ck() 함수의 기능 확인. >> document.URL은 해당 페이지의 URL을 반환한다. >> indexOf(“.kr” : 대상)은 대상(문자열)이 들어간 위치를 반환한다. >> pw폼의 입력값과 ul의 값이 같으면 Password 값을 반환한다. Password ..
1. 문제 분석 - 코드 확인 페이지 스크립트를 확인. >> ‘F12’ 를 눌러서 크롬 개발자 도구를 연다. >> ‘Elements’ 패널에서 페이지 요소 중 특이한 점 있는지 확인. >> 페이지 요소를 검사하는 방법은 ‘Ctrl + Shift + C’를 눌러 DevTools를 Inspect Element 모드로 열어 요소 위로 마우스를 가져간다. 혹은 콘솔에서 inspect(document.body)함수를 사용한다. >> 태그로 링크(index.phps)가 걸려있음을 확인하였다. >> 태그를 클릭한다. 문제 파악 >> HTML 스크립트를 통해 좀 전에 본 1번 문제 페이지의 스크립트임을 확인하였다. >> PHP 함수를 확인한다. SetCookie(“user_lv”, “1” : 쿠키명, 쿠키값)을 통해 ..