게시판이 하나 있다. 문제 파악을 위해서 Hint를 읽어본다.그리고 README를 읽어본다. README를 읽으려고 하면 비밀글에 대한 암호를 물어보면서 Query 구조를 보여준다. "=" 기호를 사용할 경우 아래와 같이 "NO! hacking!"이 발생한다. "=" 대신 쓸 수 있는 것 중에서 LIKE가 있다. 간단하게 "or nidx like '3"을 입력해서 우회하여 비밀글에 접근한다. 비밀글 접근에 성공하여 축하한다는 메시지와 함께 auth_key를 알려준다. 하지만, 곧바로 "접근권한이 없습니다!" 라는 메시지가 발생하면서 비밀글을 읽을 수가 없다. 접근 권한이 없다고 하였기 때문에 권한을 확인하는 부분 중에 하나인 쿠키를 살펴보면 auth%5Fkey 라는 것이 보이고 값으로 %3F%3F%3F%..
개발자 도구를 이용해서 코드를 보면 중간에 와 같이 난독화된 코드가 있고 Hint에는 12342046413275659 값이 나와있다. 난독화된 코드:eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('g l=m o(\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\..
User-Agent, Point가 표시되어 있다. Plus를 누르면 Point가 1씩 증가하는 것을 볼 수 있다. 개발자 도구를 이용해서 코드를 보면 가 있다. 12345678910111213141516171819202122232425262728293031323334#!/usr/bin/python# -*- coding: utf-8 -*-# do9dark import httplibimport sys sys.stdout.write('[-]Try: ')for i in range(0,50): sys.stdout.write(str(i+1)+' ') host = 'suninatas.com' url = '/Part_one/web04/web04_ck.asp' message = 'total='+str(i+1) conn ..
Notice 게시판에 글을 쓰면 된다. NOTICE 게시판에 글을 쓰고 싶지만 Write 기능을 찾을 수가 없다. FREE 게시판에 Write 기능을 이용한다. Free 게시판에 Write를 눌러보면 URL 경로에 /board/write.asp?page=1&divi=Free 라고 되어 있는 부분을 볼 수 있다. divi= 값을 Free 대신에 notice를 변경해주면 Notice 게시판에 Write로 이동할 수 있다. 간단하게 제목과 내용을 적고 Submit을 누르면 Authkey를 알 수 있다.
ID와 PW를 입력해서 가입하는 문제이다. 개발자 도구를 이용해서 코드를 보면 javascript로 id와 pw가 같을 경우 "You can't join! Try again"이라는 메시지와 함께 가입이 안되는 것을 볼 수 있다.그리고 하단에 Hint: Join / id = pw 라고 되어있는 것을 통해 id와 pw를 동일하게 해서 가입을 하면 풀 수 있다는 것을 알 수 있다. 49번 줄에 id와 pw를 비교하는 부분에 Breakpoint를 설정하고 ID와 PW를 입력해서 가입을 시도한다. 비교하는 부분에서 Console에 id="do9"를 입력해서 우회(Step into next function call을 선택)를 한 다음 전송하기 전에 다시 id="do9dark"로 변경해서 id와 pw를 동일하게 해서..
입력값(str)이 중간에 연산을 거쳐서 결과값(result)이 "admin"이 되면 Authkey가 보이는 문제이다. Replace 함수에 의해 "a"는 "aad"로 바뀌기 때문에 "admin"에서 "d"를 제외하고, "i"는 "in"으로 바뀌기 때문에 "amin"에서 "n"을 제외한 "ami"를 입력하면 쉽게 풀 수 있다."ami" > "aadmi" > "aadmin" 이 만들어지고 Mid 함수에 의해서 result1은 Mid(result,2,2) 이기 때문에 2번째에서 2글자인 "ad"가 되고, result2는 Mid(result,4,6) 이기 때문에 4번째에서 6글자인 "min"가 된다. 그리고 result1과 result2를 붙이면 "admin"이 된다.