Profile

Choih0401 Story

Choih0401

Webhacking.kr 회원가입 하기

Webhacking 워 게임 사이트로 유명한 Webhacking.kr 회원가입부터가 워게임의 시작이다. 홈페이지에 들어가면 Login 버튼만 있을 뿐 Register 버튼은 있지도 않다. 마우스 우클릭을 하고 페이지 소스보기를 눌러보자! 39번째 라인부터 주석처리가 되어있는데 Register이라고 적혀있다. 아마도 회원가입 버튼 소스인데 주석처리를 해둔 것 같다. 개발자 모드를 이용해 바꿔보자! 우선 F12를 눌러보자! 아래 그림과 같이 개발자 모드가 나오는데 마우스 모양을 눌러보자! 마우스 포인터를 아래 그림과 같이 놓고 클릭해보자 개발자 도구의 화면이 아래와 같이 변하는데 삼각형을 클릭해보자 아래와 같이 주석처리된 Register 코드가 나온다. 마우스를 우클릭하여 Edit as HTML을 눌러주자!..

Hacking/Wargame ·

[Toddler's Bottle] (2) collision 풀이

Pwnable.kr [Toddler's Bottle] 문제 풀이를 하겠습니다.두번째 문제는 collisoion 입니다. 아빠가 멋진 MD5 hash collision에 대해 이야기를 해주어서 자신도 비슷한 걸 해보고 싶다는 내용 입니다.Putty를 통해 col@pwnable.kr로 접속해봅시다. flag파일이 col_pwn의 소유자 권한과 그룹 권한만 읽을 수 있게 권한이 설정 되어 있습니다. 즉 flag파일을 열러면 col_pwn 권한을 얻어야 한다는 소리인데, col 프로그램에 setuid가 붙어 있기 때문에 col프로그램이 실행되면 파일 소유자의 권한으로 승격됩니다. 따라서 col이라는 프로그램을 익스플로잇 해 쉘을 얻거나 flag파일을 출력하도록 하면 됩니다. 문제에서 col.c라는 소스코드를 힌..

Hacking/Wargame ·

[Toddler's Bottle] (1) fd 풀이

Pwnable.kr [Toddler's Bottle] 문제 풀이를 하겠습니다.첫번째 문제는 fd 입니다.문제를 확인해 보니 리눅스에서 파일 디스크립터에 관한 문제라는 것이 나오네요. Putty를 통해 fd@pwnable.kr로 접속해봅시다. ls -l 명령을 통해 디렉토리를 보니 다음과 같은 파일들이 검색되는 것을 확인 할 수 있었습니다.setuid가 걸린 fd 파일, fd 파일의 소스인 fd.c 파일그리고 root로 설정 되어있는 flag파일이 있는 것을 확인할 수 있습니다. 그럼 이제 fd.c 파일의 소스를 확인해 봅시다. 소스를 보면 atoi에 0x1234라는 ASCII 값을 빼줍니다.그리고 len이라는 정수형 변수를 선언하고 len에 read()해서 값을 넣어줍니다.*read 함수를 read(a,..

Hacking/Wargame ·

Layer7 7번과제(Codeup 기초 100제)

Sunrin/Layer7 ·

Layer7 6번 과제(문자열 함수 구현)

1. Strlen 문자열 함수 구현 123#include // C++ 에서는 size_t strlen ( const char * str );cs 문자열의 길이를 구하는 함수(문자열의 시작부터 NULL값 까지의 문자 개수를 센다.) 1234567891011#include #include int main (){ char szInput[100]; printf ("문장을 입력하세요 : "); gets (szInput); printf ("문장의 길이는 : %u 입니다.\n",strlen(szInput)); return 0;}Colored by Color Scriptercs - 문장의 길이를 구하는 strlen 함수 예제 - 2. Strcpy 함수 구현 123#include // C++ 에서는 char * strc..

Sunrin/Layer7 ·

Layer7 5번 과제(포인터 보고서)

1. 포인터란? 포인터란 어떤 값을 저장하는게 아닌 어떤 값의 주소를 저장하는 것이다. 2. 포인터를 사용하는 이유 메모리 주소를 참조하여 다양한 자료형 변수들의 접근과 조작이 용이하다 3. 포인터 선언법 4. 포인터 사용법 1234567891011121314#include int main(void){//포인터 변수 선언char* cp=NULL;int* ip=NULL; prinG("%x'%x'%x\n", &cp, cp, *&cp);prinG("%x'%x'%x\n", &ip, ip, *&ip); prinG("%d'%d!\n", sizeof(char*), sizeof(int*)); // 4, 4 출력prinG("%d'%d!\n", sizeof(cp), sizeof(ip)); // 4, 4 출력return!0..

Sunrin/Layer7 ·

Layer7 5번 과제(금요일 문제 풀이)

1. Codeup 1405번 123456789101112131415161718192021222324252627#include int main() { int i; int j, h; int arr[1000]; int a; scanf("%d", &i); for (j = 0; j

Sunrin/Layer7 ·

Layer7 4번 과제(함수 보고서)

1. 함수란 '함수'란 일종의 작은 프로그램 단위이다. 2. 함수를 사용하는 이유 특정한 기능을 하는 코드들을 묶어 하나의 명령어처럼 사용이 가능하게 해준다 3. 함수의 형태 함수는 크게 내장 함수와 사용자 정의 함수로 나뉜다.내장 함수는 프로그래밍 언어 차원에서 이미 정의 된 함수로 별도로 함수를 만들 필요없이 형식에 맞춰쓰면 된다.사용자 정의 함수는 프로그래머가 정의한 함수로써 프로그램 어딘가에 미리 정의해둬야 사용할 수 있다. 4. 함수 선언법 123456반환형 함수명(인자, 인자 ...){ 코드들... }cs 함수는 위와 같은 형태로 선언 된다. 예를 들어123456789int sum(int a, int b) { int c = a + b; return c; }cs 간단하게 a와 b를 더해주는 함수..

Sunrin/Layer7 ·