게시판이 하나 있다. 문제 파악을 위해서 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"이 된다.
APK 파일은 zip 알고리즘의 압축파일 형태이므로 압축 유틸리티를 이용하여 풀 수 있다. - APK 파일 구성 assets: 패키지가 가지고 있는 외부 리소스 res: 패키지가 가지고 있는 내부 리소스 META-INF: 프로그램 정보 데이터로 인증서에 서명한 내용 classes.dex: 클래스들의 정보를 가지고 있는 파일 resources.arsc: 별도로 컴파일된 리소스 AndroidManifest.xml: 안드로이드 어플리케이션에 대한 정보 (권한 정보) Dalvik Decompile - DEX (Dalvik EXecutable) 자바 클래스 파일이 Dalvik 형태로 변환된 파일으로 프로그램의 실제 코드를 포함하고 있다. dex2jar를 이용해서 dex 포맷을 jar 포맷으로 변환할 수 있다. (..
명령어 설명 if-eq x, y, target x == y 인 경우, target으로 이동 (x, y 값은 정수) if-ne x, y, target x != y 인 경우, target으로 이동 (x, y 값은 정수) if-lt x, y, target x = y 인 경우, target으로 이동 (x, y 값은 정수) if-eqz x, target x == 0 인 경우, target으로 이동 (x 값은 정수) if-nez x, target x != 0 인 경우, target으로 이동 (x 값은 정수) if-ltz..
Burp Suite는 Proxy를 이용하여 HTTP Request/Response를 분석 및 수정할 수 있는 도구이다. Burp Suite > Proxy > Intercept 기능을 이용할 때, Forward / Drop / Intercept is on|off / Action 버튼을 사용해서 처리를 한다. 이 때, 단축키를 사용하면 훨씬 더 빠르게 처리할 수 있다. Forward: Ctrl + f (Mac: Command + f) Drop: Ctrl + d (Mac: Command + d) Intercept is on|off: Ctrl + t (Mac: Command + t) toggle key 처럼 사용 그 외에도 자주 쓰는 단축키 Intruder: Ctrl + i (Mac: Command + i) R..