분류 전체보기
와우해커 웹게임 7번. SQL Injection
와우해커 웹게임 7번. SQL Injection
2012.08.147번 문제를 풀기위해 http://webgame.wowhacker.com/AuThWithMySQL/로 이동합시다. 접속하자마자, 인증 요구창이 뜨는것을 볼 수 있는데 우리가 전에 풀었던 5번과 유사한 문제입니다. 우선 주어진 계정 guest로 로그인을 해봅시다. Hello^^ guest It's me! guest's information...name: guestgroup: useraddress: Nothing.phone number: 010-0000-0000hitnum: 42548Hint:not yet! : )~ 보아하니, 여기서 얻을 수 있는건 없는것 같습니다. 다시 나온 뒤에 admin으로 로그인을 해봅시다. OPTIONS 메소드를 사용해서 우회할 수 있다고 했었습니다. 우회하고 admin 페이지를 ..
와우해커 웹게임 6번. 디코딩, 콘솔
와우해커 웹게임 6번. 디코딩, 콘솔
2012.08.136번 문제를 풀기위해 http://webgame.wowhacker.com/AnTsGam3에 접속합시다. 접속하자마자, 마우스 커서쪽으로 개미가 달려드는 모습을 볼 수 있습니다. 마우스 커서를 개미에게 옮기면 개미가 사라지면서 포인트가 1씩 오릅니다. 포인트 옆에는 타겟 포인트가 있는데 아마 포인트가 4294967296과 같거나 그 이상이여야 답이 나오나 봅니다. 우선 소스를 봅시다. 소스를 봤더니 괴상한 문자들만 보입니다. 여기서 unescape 괄호 안에 위치하는 문자열은 escape 함수로 문자열을 어떠한 컴퓨터에서도 읽을 수 있게 인코딩 한 값입니다. escape이 인코딩을 하는 함수니 반대로 unescape 함수는 디코딩을 하는 함수임을 알 수 있습니다. 그리고 document.write는 doc..
17편. 배열과 메서드, 다차원 배열
17편. 배열과 메서드, 다차원 배열
2012.08.13배열과 메서드 배열을 매개변수로 받는 메서드 이번에는 배열을 매개변수로 받는 메서드를 살펴보도록 하겠습니다. 배열을 매개변수로 받기 위해선 매개변수의 타입을 '요소타입[]'으로 둬야합니다. class ArrayExamples { public static void main(String[] args) { int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; System.out.println(sum(nums)); // 55 } static int sum(int[] array) { int total = 0; for (int i = 0; i < array.length; i++) { total += array[i]; } return total; } } 위의 코드를 살펴보시면 sum(..
16편. 배열(Array)
16편. 배열(Array)
2012.08.12들어가기 전에 배열에 대해서 알아보기 전에 배열이 왜 필요한지에 대해 먼저 알아보도록 하겠습니다. 이해를 돕기 위해서 가정을 하나 들겠습니다. 우리는 사과 박스 20개를 앞에 두고 각 박스에 있는 사과의 개수를 구한 다음 사과가 총 몇 개나 있는지 알아보고 싶습니다. 각 박스에 있는 사과의 개수를 변수로 나타낸 뒤 총 합을 구하려면 아래와 같을 것입니다. 벌써부터 정신이 아득해질 것 같습니다. 코드 작성을 넘어서 진정한 문서 타이핑이 아닐 수 없습니다. 만약 박스의 개수가 20개에 그치지 않고 100개라고 한다면 어떻게 할까요? 1000개는요? 아마 그날은 변수 선언으로 밤을 지새워야 할지도 모릅니다. 변수를 선언하는 더욱 효율적인 방법이 있으면 좋겠는데 말이죠. 몇 개가 되었든 간에 한꺼번에 선언할 수..
와우해커 웹게임 5번. HTML 메소드
와우해커 웹게임 5번. HTML 메소드
2012.08.115번을 풀기위해 http://webgame.wowhacker.com/UhaveToAuth에 접속합시다. 접속하자마자 인증 필요라는 창이 뜨며 사용자 이름과 비밀번호를 입력할수 있는 칸이 보입니다. 취소를 눌러봅시다. 그랬더니 아래와 같은 페이지를 볼 수 있습니다. Authorization Required This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required. A..
와우해커 웹게임 4번. 세션 아이디
와우해커 웹게임 4번. 세션 아이디
2012.08.114번 문제를 풀기 위해 http://webgame.wowhacker.com/wlv4game/index.php로 이동합니다.그럼 아래와 같이 로그인폼과 공지사항, 그리고 공지사항이 올라온 시각을 볼 수 있습니다. 공지사항을 살펴보면 2번에 anonymous(익명)의 계정을 만들었다고 나와있습니다. 아이디가 guest, 비밀번호도 guest라네요. 우선 로그인해봅시다. 게스트로 로그인하면 홈페이지로 이동되면서, 삽질하는 이미지와 함께 로그인했던 계정까지 뜹니다. Query에 무언가 입력하려고 텍스트 박스를 누르면 Oops~라는 경고창만 계속 나타납니다. 여기서 얻은 힌트는 관리자의 계정은 admin라는 것입니다. 한번 쿠키도 살펴봅시다. WOWSESSIONID를 살펴보면,084e0343a0486ff05530..
와우해커 웹게임 3번. MD5 복호화, 타임스탬프
와우해커 웹게임 3번. MD5 복호화, 타임스탬프
2012.08.113번 문제를 풀기 위해 http://webgame.wowhacker.com/weblevel3/list.php로 접속합니다. 또 아까와 같은 게시판이 보이시죠? 이번에도 게시글을 하나씩 클릭해가며 살펴보도록 합시다. 1번 게시글을 클릭하자 오픈기념사진이란 파일이, 2번 게시글은 몸매짱, 3번 게시글은 Hint, 4번 게시글은 내사진, 5번 게시글은 비밀글 처리되어 내용을 볼 수 없습니다. 1~4번에 업로드된 파일들을 모두 다운로드 받아봅시다. 그러면 아래의 링크로 접속되어 다운로드 되는것을 확인하실 수 있습니다. 1: http://webgame.wowhacker.com/weblevel3/down/b72776c5eb0c5a05a7188959a49e1f1b.25616200 2: http://webgame.wo..
와우해커 웹게임 2번. 쿠키 변조
와우해커 웹게임 2번. 쿠키 변조
2012.08.112번을 풀기 위해 http://webgame.wowhacker.com/levelii/로 접속합시다. 접속하면 게시판이 보이시죠? 여기서 아무글이나 클릭해봅시다. '공지] 꼭 읽어보세요.'를 누르면 다음과 같은 힌트를 보실 수 있습니다. 특정 Level 이상만 글을 읽을 수 있습니다. '문제풀이법입니다!', '뭥미?', 'Answer.txt', 'Password.txt'를 누르면 'Level ~ 이상 읽을 수 있습니다!'라고 나오죠? 권한 관련 문제입니다. 지금쯤이면 짐작가시는 분들이 있을겁니다. 바로 쿠키 변조를 통해 권한을 수정할 수 있습니다. 쿠키 변조는 파로스를 통해서 하셔도 되고, 많은 분들이 알고있는 쿡시툴바를 통해서 변조를 하셔도 됩니다. 저는 Edit This Cookie를 통해서 쿠키 변조..
와우해커 웹게임 1번. 개발자의 실수
와우해커 웹게임 1번. 개발자의 실수
2012.08.11웹 또는 리버싱문제가 포함되어 있는 해킹 워게임 사이트입니다. 와우해커 워게임 시즌2의 링크는 아래와 같습니다.링크: http://webgame.wowhacker.com/ 바로 문제를 풀기위해 http://webgame.wowhacker.com/level1.php로 이동합니다. 접속했으면 아래와 같은 글을 만나 볼수 있는데,?key=Can not open a key file Hint : 개발자의 실수로 소스코드를 볼수있다. php파일의 소스코드를 웹에서 보기 위한 방법 key로 값을 넘기면 페이지에 그 값이 표시됩니다. 여기서 힌트를 봅시다. '개발자의 실수로 소스코드를 볼수있다.' 다음에 'php파일의 소스코드를 웹에서 보기 위한 방법'이 결정적 힌트. 마지막에 s를 하나 더 붙여 http://webg..
15편. 생성자(Constructor)
15편. 생성자(Constructor)
2012.08.11생성자(Constructor) 생성자는 특별한 종류의 메서드입니다. 우리가 new 키워드를 통해 객체를 생성할 때 자동으로 호출되며, 보통 필드의 값을 초기화하는 데 사용합니다. 언제든지 호출될 수 있는 메서드와는 다르게, 객체 생성 시 단 한 번만 호출되며 반환형 자체가 존재하지 않습니다. 그리고 생성자명은 항상 클래스명과 같아야 합니다. 여기서는 접근 제어자를 우선 public으로 뒀는데, 나중에 접근 제어자 편에서 이를 자세히 살펴볼 것입니다. [접근제어자] 생성자명(매개변수1, 매개변수2, ...) { // ... } new 연산자의 내부 동작 아래는 자바 바이트코드의 일부입니다. new 명령어를 사용해서 초기화되지 않은 객체 인스턴스를 먼저 생성합니다. 이 단계에서는 객체에 메모리가 할당되지만,..
13편. 객체와 클래스(Objects and Classes)
13편. 객체와 클래스(Objects and Classes)
2012.08.10이번에 배울 내용은 객체 지향 프로그래밍에서 가장 핵심이 되는 내용입니다. 객체 지향 프로그래밍은 보고 이해하는 것보다는 많은 경험을 쌓으면서 직접 필요성을 느끼는 게 중요합니다. 이해가 안되는 부분은 댓글로 달아주시면 그 부분을 게시글에 보충 설명하도록 하겠습니다. 객체(object) 클래스를 배우기 전에 객체(object)가 대충 무엇인지는 알아둘 필요가 있습니다. 여기서 object는 사전적 의미 그대로 '물건, 물체'를 의미합니다. 실생활에서 예를 들면, 나 또한 객체가 될 수 있고 그 주위에 있는 키보드, 마우스, 모니터, 책, 지갑, 달력 등 모든 것이 객체가 될 수 있습니다. 이해를 돕기 위해서 이 중 자동차를 골라 자세히 살펴보도록 하겠습니다. 먼저 자동차의 속성들을 살펴보면 색상, 크기,..
12편. 메서드(Method)
12편. 메서드(Method)
2012.08.09메서드(method) 메서드는 간단히 말하자면 어떤 작업을 수행하는 문장들을 묶어놓은 것이라고 할 수 있습니다. 우리는 이미 자바를 살펴보면서 이미 메서드를 본적이 있습니다. 그것은 바로 프로그램의 진입점(Entry Point)으로 프로그램에서 중요한 역할을 담당했던 main 메서드입니다. 이 문서에서는 직접 메서드를 정의하여 호출하는 방법에 대해서 알아보도록 하겠습니다. 메서드의 기본 구성을 살펴보면 아래와 같습니다. [제어자] 반환형 메서드명(매개변수1, 매개변수2, ...) { // ... } 뭔가 새로 보는 게 많아 보이지만 차근차근 살펴보도록 합시다. 우선 제어자(modifier)는 여기서 설명하지 않습니다. 제어자를 이해하려면 객체와 클래스를 이해해야 하므로 객체와 클래스 편과 접근 제어자 편..