본문 바로가기

분류 전체보기479

[Suninatas] Web 05 풀이 [Web 05] 빈칸에 어떠한 값을 넣고 Check를 눌러도 아무런 반응이 없다.. 페이지 소스를 보자. 스크립트 부분을 보면 eval(function(p,a,c,k,e,r) ... 이런식으로 작성이 되어있는데, 자바스크립트 코드가 페이지 소스에 보이지 않도록 난독화를 해놓은 것이다. 인터넷 사이트를 찾아보다 간단하게 자바스크립트 난독화를 풀수있는 해독화 사이트를 찾았다. https://www.strictly-software.com/unpack-javascript 이 사이트에 들어가 저 스크립트 부분을 넣고 Unpack 버튼을 누르면 해독화된 코드가 나온다. 코드를 보면 PASS함수에 n을 넣는다.. n의 값을 유추 하려다가 힌트에 있던 값이 생각났다. 이 값을 PASS에 넣으면 문자열이 반환된다. 나온.. 2019. 8. 15.
[Suninatas] Web 04 풀이 [Web 04] User-Agent는 현재 내가 사용하는 브라우저의 정보이다.Plus 버튼을 누르면 Point가 올라간다. 먼가 이상해서 페이지 소스를 보니 힌트에 Point를 50까지 만들어야 한다고 하고 SuNiNaTaS라는 글이 써져있었다.. 50까지 노가다를 하는줄 알고 Plus를 계속 누르다 보니 Point가 25에서 올라가지 않고, SuNiNaTaS 브라우저를 좋아한다는 경고창이 뜬다.. ㅠ 이 문제도 2번과 같이 Burp Suite나 Fiddler를 이용하여 정보를 변경해야한다. 하.. 위의 사진처럼 User-Agent: 부분을 SuNiNaTaS로 변경해 주면 Point가 올라간다. Burp Suite의 Repeater 기능을 이용하여 계속 보내주면 어느새 50 Point가 넘어가고 Auth.. 2019. 8. 15.
[Suninatas] Web 03 풀이 [Web 03] 문제에 들어가면 이렇게 떡하니 Notice 게시판에 글을 쓰라고 한다.. 뭔소린가 싶어 페이지 소스코드를 보니깐 아무 것도 없다.. 진짜로 Notice 게시판에 글을 써야하나보다.. ㅠ main을 눌러 Notice 게시판에 가보자. 우선 Notice 게시판의 URL은 /board/notice이다. 여기서도 아무리 찾아도 어떻게 글을 쓰는 것인지 알 수 없다.. ㅠ 혹시나 다른 게시판은 글쓰는 기능이 있는지 싶어 Free 게시판에 들어갔는데 다행히 write 버튼이 있었고 URL은 /board/free/write다. 이 URL로 Notice 게시판의 글쓰기는 /board/notice/write라고 추측할 수 있다. URL에 suninatas/board/notice/write를 입력하면 글을.. 2019. 8. 15.
[Suninatas] Web 02 풀이 [Web 02] 문제에 들어가면 ID 값과, PW 값을 넣고 Join을 눌러도 아무 변화가 없고, ID와 PW에 같은 값을 입력하면 You can't join! Try again 경고창이 뜬다. F12를 눌러 페이지 소스를 보자... ㅠ Join 버튼의 태그다. 버튼을 누르면 chk_form() 함수가 실행된다. script 부분의 chk_form()함수를 보자... ㅠ id값과 pw값을 받아와 같으면 경고창을 띄우고 아니면 submit()함수로 넘어간다. 그리고 script 태그 아래를 보면 힌트로 id = pw 라고 되어있다..? 즉, if( id == pw ) 를 통과한뒤 Burp Suite나 Fiddler를 이용하여 id값과 pw값을 같게 만들면 될 것 같다.. 하.. 맨 아래에 보이는 것처럼 i.. 2019. 8. 14.
[Suninatas] Web 01 풀이 [Web 01] 문제를 보면 빈칸에 문자열을 넣고 Check 버튼을 누르면 Request("str")에 의해 문자열이 str에 저장이 된다. 함수 들을 설명하면 Replace(str,"a","aad") 함수는 str에 저장되어 있는 문자열중 a를 aad로 변경한다. 예를들어 문자열 ad를 입력하면 Replace(str,"a","aad")의 결과값은 aadd가 된다. Mid(result,2,2) 함수는 result에 저장되어 있는 문자열의 2번째 부터 2글자를 자른다는 의미이다. 예를들어 abcd의 경우 bc 만 자르게 된다. result1 & reslut2 는 result1 + result2와 같다. 예를들어 result1=adm, result2=in 이면, result1&result2 의 결과값은 ad.. 2019. 8. 14.
[네트워크] OSI 7계층 정리 [OSI 7계층] #2019.07.30 OSI(Open System Interconnection) : 개방형 시스템 상호 연결 OSI 7계층이란?- 네트워크에서 통신이 일어나는 과정을 7단계로 나눈것 OSI 7계층을 만든 이유- 다양한 네트워크 연결 방식에 대한 호환성 문제를 해결하기 위해- 데이터의 흐름이 한눈에 보인다. (데이터가 어떻게 날아가는지 볼 수 있음)- 문제 해결이 편리 (어떤 계층에서 문제가 발생했는지 파악이 가능하므로) OSI 7계층 통신 구조- 애플리케이션에서 물리 계층까지 내려간다.AH : Application HeaderPH : Presentation HeaderSH : Session HeaderTH : Transport HeaderNH : Network Header/NT : Ne.. 2019. 7. 30.
[OS] 파일 시스템(File System)이란? [File System] #2019.07.29 파일 시스템 - 컴퓨터에서 파일이나 자료를 쉽게 발견 할 수 있도록, 유지, 관리하는 방법이다.즉, 저장매체에는 많은 파일이 있으므로, 이러한 파일을 관리하는 방법을 말한다. - 사용자 영역이 아닌 커널 영역에서 동작- 파일을 빠르게 읽기, 쓰기, 삭제 등 기본적인 기능을 원활히 수행하기 위한 목적 파일 시스템 특징- 계층적 디렉터리 구조를 가진다.- 디스크 파티션 별로 하나씩 둘 수 있다. 파일 시스템의 역할- 파일관리 : 파일 저장, 참조, 공유- 보조 저장소 관리 : 저장 공간 할당- 파일 무결성 메커니즘 : 파일이 의도한 정보만 포함하고 있음을 의미- 접근 방법 : 저장된 데이터에 접근할 수 있는 방법 제공 파일 시스템 개발 목적- HDD와 메인 메모.. 2019. 7. 29.
[Forensic] 포렌식 공부순서 [Forensic] #2019.07.29 AlpineLab 박상호 대표님의 강연을 듣고... 공부 순서 1. 프로그램 언어 - 파일 시스템 - 네트워크*파일 시스템(File System)이란? 2. 아티팩트 - 파일분석 - 파일포맷- 아티팩트 : Windows, Linux, MAC- 파일포맷의 경우 문서, 이미지, 실행파일을 위주로 공부 3. 물리장비 - 로그분석 - 해킹공격- 해킹공격의 경우 워게임으로 비교하면, webhacking.kr(올클리어), pwnable.kr(2단계 클리어), reversing.kr(5문제) 풀정도로 공부하면 된다. 2019. 7. 29.
[리버싱] 정적/ 동적 분석 (리버싱 시작) [정적/ 동적 분석] 리버스 엔지니어링..? Reverse Engineering, RE:역공학 이라 하며, 물건이나 기계장치 혹은 시스템 등의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업 정적 분석이란..? 파일의 겉모습을 관찰하여 분석하는 방법, 이 분석 방법은 파일을 실행하지 않고, 파일의 종류(EXE, DLL, DOC, ZIP 등), 크기, 헤더(PE) 정보,Import/Export API, 내부 문자열, 실행 압축 여부, 등록정보, 디버깅 정보, 디지털 인증서 등의 다양한 내용을 확인하는 것, 또한 디스어셈블러(Disassembler)를 이용해서 내부 코드와 그 구조를 확인하는 것도 정적 분석의 범주에 들어간다. 동적 분석이란..? .. 2019. 7. 23.
[java] JNetPcap 설치하기 #설정까지 [JNetPcap] 우선 윈도우에서 JNetPcap을 사용하려면 WinPcap이 설치되어 있어야한다.- WinPcap Installation Link 또한 JNetPcap을 사용하기 위해서 3가지의 zip 파일이 필요하다. (아래 링크는 1.4 버전)- JNetPcap Download Package 64bit- JNetPcap Download Package 32bit- JNetPcap Source File- JNetPcap JavaDoc# Package는 윈도운 운영체제에 맞게 다운받아 주세요. ##이클립스에 라이브러리 추가하는방법## 1. JNetPcap Download Package 안에 있는 jnetpcap.dll 과 jentpcap-pcap100.dll을 C:/Windows/System32 안에 .. 2019. 5. 28.
[명품 JAVA] 7장 연습문제 (제네릭과 컬렉션) [7장 1번] 컬렉션에 관한 설명으로 틀린 것은?1. 가변 크기라서 배열보다 사용하기 편리하다.2. 삽입 삭제 시 원소의 위치를 컬렉션이 자동 조절하므로 편하다.3. 객체들만 삽입되므로 int와 같은 기본 타입의 값을 저장하는 방법이 없어 아쉽다.4. 컬렉션은 모두 제네릭(generics)으로 만들어져 있다. - 3. 객체들만 삽입되므로 int와 같은 기본 타입의 값을 저장하는 방법이 없어 아쉽다. _ int와 같은 기본 타입의 값은 Wrapper 클래스를 이용하여 객체로 만들어 저장하면 된다. [7장 2번] 다음 빈칸에 적절한 단어를 기입하라. 클래스, 인터페이스, 메소드를 특정 타입에 종속되지 않게 일반화 시켜 작성하는 기술을 제네릭이라 한다. Vector에서 E는 제네릭 타입 혹은 타입 매개변수라고.. 2019. 5. 27.
[명품 JAVA] 6장 실습문제 (모듈과 패키지 개념, 자바 기본 패키지) [공지] 코딩, 솔루션, 포스팅 주제 관련 [6장 1번] 다음 main()이 실행되면 아래 예시와 같이 출력되도록 MyPoint 클래스를 작성하라.public static void main(String [] args) {MyPoint p = new MyPoint(3, 50);MyPoint q = new MyPoint(4, 50);System.out.println(p);if(p.equals(q)) System.out.println("같은 점");else System.out.println("다른 점");} Point(3,50) 다른점 [풀이]public class MyPoint {private int x, y;public MyPoint(int x, int y) {this.x = x;this.y = y;}pu.. 2019. 5. 16.
[명품 JAVA] 6장 연습문제 (모듈과 패키지 개념, 자바 기본 패키지) [6장 1번] import에 대한 다음 질문에 답하라.(1) import 문은 언제 사용하며, import 문이 의미하는 바는 무엇인가? - import 문은 다른 패키지에 있는 클래스를 사용할 때 코드의 서두에 선언하는 것으로, 컴파일러에게 그 클래스의 경로명을 알려주는 문이다. (2) import java.util.Random;과 import java.util.*;의 의미는 각각 무엇인가? - import java.util.Random;은 Random 클래스가 java.util 패키지에 있음을 컴파일러에게 알려주는 문이다. 자바 소스 프로그램에서 Random의 이름을 사용하면, 컴파일러가 Random 클래스의 경로명을 찾을 때, import 문을 참조하여 찾게 한다. import java.util.*.. 2019. 5. 15.
[명품 JAVA] 5장 실습문제(9~14) (상속) [공지] 코딩, 솔루션, 포스팅 주제 관련 [5장 9번] 다음 Stack 인터페이스를 상속받아 실수를 저장하는 StringStack 클래스를 구현하라.interface Stack { int length(); // 현재 스택에 저장된 개수 리턴 int capacity(); // 스택의 전체 저장 가능한 개수 리턴 String pop(); // 스택의 톱(top)에 실수 저장 boolean push(String val); // 스택의 톱(top)에 저장된 실수 리턴 }그리고 다음 실행 사례와 같이 작동하도록 StackApp 클래스에 main() 메소드를 작성하라.총 스택 저장 공간의 크기 입력 >> 3 문자열 입력 >> hello 문자열 입력 >> sunny 문자열 입력 >> smile 문자열 입력 >> h.. 2019. 4. 21.
[명품 JAVA] 5장 연습문제(8~16) (상속) [5장 8번] 다음 코드에서 생성자로 인한 오류를 찾아내어 이유를 설명하고 오류를 수정하라.class A { private int a; protected A(int i) { a = i; } } class B extends A { private int b; public B() { b = 0; } } - class B의 생성자와 짝을 이룰 기본 생성자가 class A에 없다.- public A() { } 생성자를 만들어주거나, public B(){ super(1); b = 0; } 으로 수정해준다. [5장 9번] 다음 추상 클래스의 선언이나 사용이 잘못된 것을 있는 대로 가려내고 오류를 지적하라.(1)abstract class A { void f(); } (2)abstract class A { void f(.. 2019. 4. 20.