문제분석 & 풀이 문제에 접속하니 Password is 라는 문구와 함께 오른쪽 값 빠른 속도로 바뀐다. 아마 빠르게 바뀌는 이값들의 총집합이 password 이고 이것을 구하는 문제인 것 같다. 개발자 도구를 이용해 소스를 확인하여 answer() 함수를 찾아냈다. answer() 을 분석해보니 파라미터를 이용해 통신을 하여 그 결과 값을 aview 즉, "Password is" 오른쪽 부분에 출력한다. 소스를 자세히보면 aview.innerHTML=x.response.Text 로 되어있어 통신할때마다 화면에 출력되는 값이 바뀌는 것을 확인할 수 있는데 이것을 aview.innerHTML+=x.response.Text 의 형태로 바꾸면 매번 값이 바뀌는게 아니라 값이 쌓이는 형태로 출력이 될 것이다. ..
문제분석 & 풀이페이지에 접속하면 테이블이 나온다. test.txt 파일을 다운로드 해보니, 정상적으로 다운로드 됐다. 이번에는 flag.docx를 다운로드를 했다. access denied가 뜬다. 아마, flag.docx를 다운받는게 목표인 것 같다. 개발자도구로 코드를 확인해보면, test.txt 파일을 다운로드 받는 과정에서 down 파라미터로 요청하고 있다. 전송하는 값을 보면, 마지막에 =이 붙어있다. 추측하자면, base64 인코딩이 된 값이다. 값을 base64 디코딩하면 test.txt 가 나온다. 예상대로 base64로 인코딩된 값임을 확인할 수 있다. 그렇다면 test.txt 파일을 다운받기위해 test.txt 를 base64 인코딩하여 down 파라미터로 요청했으니, flag.do..
문제분석 & 풀이문제에 접속하면 투표 랭킹이 뜬다. 이번 문제의 의도는 무엇일까?라고 고민하던 중 혹시하는 마음으로 나의 닉네임을 검색했다. 검색결과 내 닉네임이 있었고 0표 970등이였다. 아하! 1등이 37표였으니 내 투표결과를 1등으로 만들면 해결되겠구나!라고 생각했다. 나의 닉네임을 클릭하니 투표가 됐고 확인해보니 0표에서 1표로 늘었다. 그리고 다시 한번 나의 닉네임을 눌러서 투표하니 이미 투표했다고 하면서 투표가 무효된다. 아마 서버쪽에 투표를 했는지 안했는지 정보를 넘기는 것이라고 추정되는데... 그래서 바로 쿠키부터 확인했다. 쿠키를 확인해보니 vote_check 라는 쿠키가 존재했으며 값도 ok이다. 쿠키 값을 없애고 다시 투표를 해보니 정상적으로 투표가 된다! 쿠키값을 없애고 투표하는 ..
문제분석 & 풀이문제에 접속하니 클라이언트 IP 주소 , 클라이언트 에이전트 정보가 나와있다. 소스도 주어져있으니 소스를 봐보도록하자. 소스를 분석하면 다음과 같다.1. extract() 를 통해 $_SERVER , $_COOKIE 정보를 변수로 선언한다. (2,3번)2. $ip 변수에 클라이언트 ip, $agent 변수에 클라이언트 에이전트 정보를 넣는다. (4,5번)3. 클라이언트 ip는 여러번의 replace()를 통해 값을 변환하고 $ip변수에 넣는다. (6~12번)4. 최종적으로 $ip 변수의 값이 "127.0.0.1"이면 문제가 해결된다. 결론적으로 $ip에 들어갈 값즉, 클라이언트의 ip값을 "127.0.0.1" 만들어야 한다는 것인데.... 이것은 불가능해보인다. 그렇다면 어떻게 $ip값을..
문제분석 & 풀이문제에 접속하니 하나의 입력폼이 주어져있다. 개발자도구로 소스부터 봐보니 script 부분에 unlock이라는 변수가 여러 연산을 거쳐 선언되어있는데 처음에 주어져있던 폼에 unlock 값을 넣으면 문제가 해결되는 것 같다. unlock 의 값을 일일이 계산할 수는 없기 때문에 console 창에서 직접 unlock 변수의 값을 읽어보았고 7809297.1 이라는 값이 나왔다. 이제 이 값을 처음에 주어졌던 폼에 입력해보자. 클리어!!
문제분석 & 풀이문제에 접속하니 큰 별과 작은 별이 보인다. 개발자 도구를 이용해 소스를 보았다. 소스를 보니 mv()에서 cd==124인 부분에 주석으로 do it! 이라고 되어있는 것을 보았고 바로 console 창에 mv(124)를 실행해보았다. 클리어 굉장히 간단한 문제였다....ㅋ