문제 페이지를 보면 hint vi blackout이 나와 있다. vi 작성 중에 정전(강제종료, blackout)이 발생할 경우를 대비해서 vi는 백업 파일을 생성한다.해당 페이지를 작성 중에 정전이 발생하였다고 가정을 하면 .index.php.swp로 백업 파일이 남게 되고 해당 파일에 접근을 해보면 아래와 같이 작성 중이던 파일 내용을 볼 수가 있다. 패스워드는 "$_SERVER[REMOTE_ADDR] dlseprtmvpdlwlfmfquswhgkwkglgl" 값을 md5해주면 된다.
문제 페이지를 보면 전화번호를 입력하는 곳과 소스 파일이 주어져 있다. 소스 파일을 보면 insert into challenge35_list(id,ip,phone) values('$_SESSION[id]','$_SERVER[REMOTE_ADDR]',$_GET[phone]) Query를 통해서 테이블에 데이터를 삽입할 수 있는 것을 볼 수 있다. 하지만 사용자가 입력할 수 있는 부분은 $_GET[phone]에 제한되어 있어서 id가 admin이고 자신의 ip를 삽입할 수가 없다. 이를 우회하기 위해서 아래와 같이 다중 Insert 문을 이용해서 데이터를 삽입해보면 문자열로 인해서 querry error가 발생한다. INSERT INTO challenge35_list (id, ip, phone) VALUES..
문제 페이지에 접근하면 Wrong 이라는 메시지 창이 발생한다. 그리고 나면 검정색 화면이 반겨준다. 정보를 더 찾기 위해서 해당 페이지의 소스를 보면 아래와 같이 난독화되어 있다. 해당 스크립트는 개발자 도구를 이용해서 요소 보기를 하면 쉽게 알아볼 수 있다.if(document.URL.indexOf('0lDz0mBi2')!=-1){location.href='Passw0RRdd.pww';}else{alert('Wrong');}부분을 보면 URL에 '0lDz0mBi2'가 있으면 'Passw0RRdd.pww'로 이동되는 것을 볼 수 있다.이 부분을 직접 이동해도 되고 아래와 같이 URL에 '0lDz0mBi2'를 입력해서 이동할 수 있다. 이동해보면 패스워드 값을 알 수 있고 인증을 하면 문제를 풀 수 있다.