Profile

Choih0401 Story

Choih0401

Layer7 개인 프로젝트

2018년 Choih0401 개인 프로젝트 보고서 1. 작품 개요 A. 개발 동기 : 우리가 자주 사용하는 카카오톡, 페이스북 메신저 등은 우리가 알지 못하는 곳으로 대화 내용이 전송되고, 심지어 카카오톡 같은 경우에는 국가에 카카오톡 대화 내용을 제공해 주었다고 한다. 이런 뉴스를 보고 옛날에 스크래치 서버를 이용한 스크래치 채팅 프로그램을 만들었었지만, 이제 Layer7에 들어와서 C언어를 배우고 익혀가며 "그 때 만들었던 채팅 프로그램을 c언어로 만들어보자!" 이렇게 생각하였고, 개인 프로젝트로 만들게 되었다. B. 개발 환경1) Coding : Microsoft visual stduio 2017 community2) Compiling : Microsoft Windows 10 Edu(cmd) C. ..

Sunrin/Layer7 ·

Layer7 9번 과제(구조체 배열 예제)

123456789101112131415161718192021222324252627282930#include struct ad { char number[30]; char name[30]; char phone_number[30]; int age; int money;}a1; int main(){ int i; int j; struct ad arr[3]; for (i = 0; i

Sunrin/Layer7 ·

Layer7 8번 과제(구조체)

구조체 보고서 1. 구조체란?관련된 변수를 하나로 묶어 사용할 수 있는 변수. -> 변수에 대한 변수.구조체의 멤버로 일반 변수뿐만 아니라 배열이나 포인터를 선언할 수 있다.구조체를 정의하면 새로운 데이터 형이 만들어진다.구조체를 정의한다고 해서, 구조체의 멤버가 메모리에 할당되지는 않는다.구조체형의 변수를 선언하면, 구조체의 맴버들이 메모리에 할당된다.12345struct student { char name[20]; int Korean, english, math; double average;};cs *구조체 끝에는 반듯이 세미콜론이 필요하다.*구조체 선언이 있어야 구조체 변수 선언이 가능하다. 2. 구조체의 크기 구조체의 크기는 모든 멤버들의 크기의 합보다 크거나 같다.메모리 정렬 때문에 멤버들 사이에..

Sunrin/Layer7 ·

Layer7 8번 과제(메모리 구조 보고서)

메모리 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드 되어야 한다.또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다. 따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있다.프로그램이 운영체제로부터 할당 받는 메모리 대표적인 메모리 구조는 아래와 같다. 1. 코드(Code) 영역2. 데이터(Data) 영역3. 스택(Stack) 영역4. 힙(Heap) 영역 아래 그림영체제가 제공하는 메모리 공간은 표현하고 있다. 1. 코드(Code) 영역 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부른다.CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다. 2. 데이터(Data) 영역 전역변수, 정적변수, 배열, 구조체 등이 ..

Sunrin/Layer7 ·

Webhacking.kr 6번 문제(100점)

Webhacking.kr 6번 문제! 6을 눌러서 들어가면 아래 그림과 같은 화면이 나온다. 우선 힌트가 base64라고 한다. index.phps를 눌러보자! 아래 그림과 같은 소스코드들이 나온다. 소스코드를 살펴보니 base64로 id와 password를 20번씩 디코딩 시킨 것 같다. 다시 문제 화면으로 돌아가서 쿠키를 살펴보면 password와 user가 추가된 것이 보인다. admin 값이 입력되어야 함으로 admin 값을 base64로 20번 인코딩 해서 각각 입력하자! 쿠키값에 인코딩 한 값을을 대입하니 문제가 풀렸다 ㅎㅎ 6번 문제도 클리어!

Hacking/Wargame ·

Webhacking.kr 5번 문제(300점)

이번에는 Webhacking.kr 5번 문제를 풀어보기로 하였다. 5를 눌러 들어가면 아래 그림과 같은 화면이 나온다. 우선 로그인을 한번 해보자! ID, Password에 모두 admin을 넣고 로그인을 시도해봤다. 비밀번호가 틀렸다고 한다. ID는 admin인가 보다 다시 main페이지로 돌아가서 join을 눌러보자! 나한테 권한이 없다고 한다... F12를 눌러 개발자 모드로 소스코드를 보면 아래 그림과 같다. Login 버튼이 눌리면 mem/login.php로 이동되게 설정이 되어있다. 그렇다면 mem/join.php로 들어가면 되지 않을까? 주소창 뒷부분에 mem/join.php를 치면 아래와 같은 화면이 나온다. 당황하지 않고 페이지 소스 보기를 해주면 아래 그림과 같은 소스코드들이 나온다. ..

Hacking/Wargame ·

Webhacking.kr 4번 문제(150점)

Webhacking을 막 입문한 나에게 2,3번은 무리인 듯 하여, 낮은 점수인 4번 문제부터 풀어보기로 하였다. 4를 눌러 들어가면 아래와 같은 화면이 나온다. 막 이상한 문자들이 써져있다. 페이지 소스보기도 해보았지만 아래와 같이 아무 내용도 들어있지 않았다. 암호를 푸는 문제 같아 곰곰히 생각해보다 뒤에 ==이 붙어 있는 것을 보니 왠지 base64인 것 같아서 base64로 디코딩 하였다. Webhacking.kr에서 base64디코딩이 가능하다! base64로 디코딩 하니 아래 그림과 같은 결과가 나왔다. 결과를 보니 16진수로 이루어진 Hash 값 같았다. 40자리의 Hash 값이고 16진수로 이루어져 있음으로 40*4 = 160 bit의 Hash 함수를 찾아보았다. 위키 백과에 친절하게도 S..

Hacking/Wargame ·

Webhacking.kr 1번 문제(200점)

일단 Webhacking.kr 에서 Challenges를 클릭하자 여러 문제들이 보이지만 1번 부터 풀어보도록 하자 1을 클릭하면 아래 그림과 같은 화면이 나온다 index.phps를 클릭해봤더니 아래와 같은 소스코드가 보인다. 아래 그림은 Cookie에 user_lv이라는 쿠키가 없으면 1로 설정해 주는 소스코드 인 것 같다. 아래 소스코드가 중요한 소스코드인 것 같다. @solve를 나오게 하면 될 것 같다. user_lv의 쿠키 값이 0~9가 아니면 1로 바꾸도록 되어있고, user_lv의 쿠키 값이 6이상이어도 1로.... user_lv의 쿠키 값이 5보다 큰 경우에 @solve를 출력해주는 것 같다. EditThisCookie라는 Chrome도구를 이용해 쿠키를 바꿀 수 있다. 아래 그림과 같이..

Hacking/Wargame ·