Wargame
-
[Web Exploitation] Secret AgentWargame/picoCTF 2018 2019. 4. 3. 16:57
My New Website에 접속 후 바로 Flag를 누르면 현재 페이지가 구글이 아니라는 문구가 뜨면서 현재 사용중인 User Agent가 나타난다. User Agent란 사용자를 대신해 일을 수행해주는 소프트웨어 에이전트로, 거의 대부분 웹 브라우저를 말한다. 따라서 User Agent, 즉 현재 실행중인 웹 브라우저를 구글로 바꿔주면 된다. 개발자도구 실행 후 오른쪽 상단에 ...으로 표시된 곳을 클릭하면 More tools에 Network conditions 메뉴가 있는 것을 확인할 수 있다. Network conditions를 클릭하면 하단에 해당 메뉴가 생성되는데, 여기서 User-Agent를 Googlebot으로 변경해준 뒤 Flag를 클릭하면 Flag가 나타난다.
-
[Webhacking.kr] Challenge 18 풀이Wargame/Webhacking.kr 2019. 3. 30. 23:09
이번 문제는 SQL Injection 문제이다. 먼저 index.phps 페이지를 확인해보자. 코드를 확인해보면, no를 GET 방식으로 입력받아야 아래 소스가 실행된다는 것을 알 수 있다. 여기서 no는 입력칸에 입력된 값이 저장되는 변수이다. eregi는 php의 입력 문자열 필터링 함수이다. 이 함수로 인해 공백, /, 괄호, \t, |, &, union, select, from, 0x는 no의 입력값으로 올 수 없다. 만약 이 문자들이 입력되면 exit 함수가 실행되어 no hack 문구가 출력된다. 그 뒤에 나오는 $q=@mysql_fetch_array(mysql_query("select id from challenge18_table where id='guest' and no=$_GET[no]"..
-
[Webhacking.kr] Challenge 17 풀이Wargame/Webhacking.kr 2019. 3. 30. 21:41
이번 문제는 매우 간단하게 해결되는 문제이다. 먼저 개발자 도구를 실행한다. Script 부분을 보면, 매우 긴 계산식과 함께 sub 함수가 정의된 것을 확인할 수 있다. unlock은 위 식의 결과값이고, 만약 login.pw.value와 unlock이 같다면 패스워드가 출력될 것임을 알 수 있다. (또한 패스워드는 unlock을 10으로 나눈 값과 같다.) 즉, 위 식을 계산한 결과값만 알면 문제는 해결된다. 계산 방법을 알아내는 방법은 여러 가지가 있는데, 나는 개발자 도구 내의 콘솔창에 식을 그대로 복붙해 돌렸다. 콘솔창에 나온 계산 결과값을 그대로 입력창에 입력한 뒤 check를 클릭한다.
-
[Webhacking.kr] Challenge 16 풀이Wargame/Webhacking.kr 2019. 3. 30. 21:20
** 이 문제는 크롬보다는 익스플로러 환경에서 풀어야 더 정확히 풀 수 있으므로 익스플로러 사용을 권장한다. 개발자 도구를 실행한다. 먼저 body 부분을 확인해보자. onkeypress는 키보드 이벤트 속성 중 하나로, 사용자가 키보드의 키를 눌렀을 때 해당 키의 ASCII 코드 값을 반환하는 event.keyCode를 인자로 받는다. 이 소스에서는 사용자의 키보드 입력값이 mv라는 함수의 인자로 들어간다. 또한 onload 이벤트에 의해 페이지가 로드된 후 바로 kk 함수가 호출된다. 이번엔 script 부분을 확인해보자. 맨 첫 부분에 나온 document.body.innerHTML+="*"; 코드는 aa라는 이름의 *을 (x, y) = (0, 0) 위치에 출력한다는 뜻이다. 그 다음 두 개의 함수..
-
[Webhacking.kr] Challenge 14 풀이Wargame/Webhacking.kr 2019. 3. 30. 19:26
먼저 개발자 도구를 실행한다. 여기서 script의 ck 함수를 살펴보자. 1) 먼저 ul이라는 변수에 Challenge 14 페이지의 전체 URL 문자열을 넣는다. (ul = http://webhacking.kr/challenge/javascript/js1.html) 2) indexOf 함수를 사용하여, ul 내에서 ".kr"이 처음 시작되는 위치의 인덱스를 찾아 ul에 저장한다. (indexOf 함수는 문자열 내에서 특정 문자열이 처음 시작되는 곳의 인덱스 값을 리턴하는 자바 스크립트 함수이다.) .kr은 ul의 18번째 위치에서 처음 시작하므로, 인덱스 값은 17이다. (ul = 17) 3) ul에 30을 곱한 값을 다시 ul에 저장한다. (ul = 17 * 30 = 510) 4) 내가 입력창에 입..