Try to be the expert.

Ainsetin's Hacking & PS & Math

전체 글 63

1인 1프로젝트 : 7일차 (prototype & pollution)

어떤 한 객체는 반드시 [[prototype]]이라는 hide property를 가지고 있다. 이 property는 내부에서 참조를 통해 다른 객체의 메서드나 변수를 가져올 수 있는 기능을 한다. 예를 들어, 다음과 같은 코드에서 prototype이 어떤 값을 가지고 있는지를 알 수 있다. 1 2 3 4 5 6 7 a={ 'A': 1234, 'B': "5678" } var b={}; console.log(b.__proto__) cs __proto__ 를 사용하면 위 사진과 같이 참조할 또 다른 객체를 적용시킬 수 있는데, 현재 b라는 객체는 constructor, __defineGetter__, .... 등을 가지고 있는 내부 객체가 할당되어 있다. 따라서 __proto__ 값을 a라는 객체로 만들어주면..

2021 1人 1 Project 2021.06.10

1인 1프로젝트 : 6일차 (객체와 this의 역할)

이번에는 javascript의 큰 특징인 객체의 this에 대해서 공부하였다. 1 2 3 4 5 6 7 8 9 let user = { name: "John", age: 30, // 메서드 선언 sayHi(){ alert(this.name); } } cs 객체는 다음과 같이 {}와 key - value 형태로 선언할 수 있다. 객체 안에는 위와 같이 메서드를 선언할 수도 있다. 여기서 메서드란, 객체 property 안에 할당된 함수를 의미한다. 1 2 3 4 5 6 7 8 9 10 11 12 let user = { name: "John", age: 30, // 메서드 선언 sayHi(){ alert(this.name); } } let admin = user; admin.sayHi(); cs 다음과 같이 ..

2021 1人 1 Project 2021.03.30

1인 1프로젝트 : 5일차 (Javascript의 자료형, ?? 연산자)

Javascript의 자료형 오늘은 Javascript의 자료형에 대하여 알아보았다. 자료형의 종류는 여러가지인데, boolean, string, object, number 등이 있다. 자료형을 확인하는 방법은 typeof 확인할 변수 or typeof(확인할 변수) 를 사용하면 된다. typeof에서는 javascript에서 지원하는 함수를 인자로 넣었을 때 "function"이라고 반환해준다. 만약 내가 string을 number형으로 바꾸고 싶으면, 다음과 같이 Number() 함수를 사용하면 된다. number 자료형은 Infinity, -Infinity, NaN과 같은 특수한 숫자의 경우도 포함한다. 예시로, 양수를 0으로 나눴을 때는 Infinity, 음수를 0으로 나눴을 때는 -Infinit..

2021 1人 1 Project 2021.03.16

1인 1프로젝트 : 4일차 (1분발표, Javascript 공부)

Today's Work 지금까지 계획한 것을 친구들 앞에서 발표하는 시간을 가졌다. 웹해킹에서 JS와 파이썬의 중요성을 느껴 이 연구주제를 잡았고, 오늘부터 틈틈히 Javascript부터 시작해서 공부를 하려고 한다. 우선, C언어의 기본 문법을 잘 알고 있었고, 작년에 응용프로그래밍 화면 구현 시간에 조금 공부를 해봤기 때문에, 어느 정도 연산자나 조건문, 반복문 등은 문제 없이 할 수 있다. 다만, JS에서만 허용하는 문법들이나 새로운 개념, 그리고 내장함수들을 중점으로 공부한다면, 좀 더 구체적으로 활용할 수 있지 않을까 생각하여 간단한 변수의 형부터 시작하여 클래스, 비동기 등까지 공부해볼 생각이다. Javascript의 변수와 상수 JS에서 사용하는 변수에는 var, let, const 가 있다..

2021 1人 1 Project 2021.03.15

1인 1프로젝트 : 1~3일차

1. 자기계발계획서 작성하기 2. 연구 주제 및 내용, 연구방법 생각해보기 3. 간단 발표 준비하기 연구주제 Javascript와 python의 문법과 내장함수를 정리하고, 두 언어를 활용하여 나만의 웹해킹 문제 제작하기, 누가봐도 깔끔한 페이지를 가진 웹개발 도전해보기 선정이유 중학교 때 C언어의 문법과 알고리즘을 중심으로 공부했기 때문에 C언어는 자신 있지만, 나에게 제일 취약한 웹해킹 문제를 접하면서 자바스크립트나 파이썬의 문법과 내장함수에 대해 뜨문뜨문 공부했다고 생각이 들었고, 이번 계기를 통해 접근 방식이나 웹개발 습관을 바로잡기 위해서 이 연구 주제를 선정하였습니다. 연구내용 JavaScript, Python의 기본 문법과 내장함수 학습 두 언어를 활용한 웹해킹 문제 제작 php를 사용하지 ..

2021 1人 1 Project 2021.03.11

자기계발계획서

안녕하세요. 저는 한국디지털미디어고등학교 18기 해킹방어과에 재학중인 배원욱입니다. 저를 소개하기에 앞서, 디미고를 입학하고 싶었던 중학교 때로 다시 돌아가보겠습니다. 중학생 땐 "해킹"이라는 것의 개념을 알아보고, 이론적으로만 "해킹"이 어떤 것인지 파악하였습니다. 그러나, 직접적으로 어떻게 해킹을 공부해야 할지 몰랐었기 때문에 요즘 많이 뜨는 "코딩과 알고리즘, 자료구조"에 초점을 맞추어 공부하였습니다. 이러한 기초를 바탕으로 고등학교를 입학하여 교내 정보보안동아리 STEALTH에 가입을 해 정말 해킹은 어떻게 하는 것인지, 해킹의 다양한 분야에 대한 기초 지식과 실습은 어떻게 진행하는지에 대해 직접 따라해보기도 하고 많이 고민하였습니다. 1년이라는 시간이 지나 동아리장을 맡게 되었고, 직접 후배들을..

2021 1人 1 Project 2021.03.09

웹개발 일지 13일차 (20.12.06)

이번 프로젝트의 마지막 개발일지가 될듯 싶다. 1학기때는 로그인과 회원가입이 우선이었다면, 2학기때는 동적으로 작동하는 사이트 제작에 목표를 두었었다. 이번 1달 동안 드디어 CTF 카드 페이지를 동적으로 만드는데 성공하였다. 가장 먼저 수정했던 것은 "관리자만 카드를 추가할 수 있게끔 하는 것" 이었다. 그래서 DB에 관리자 리스트를 따로 만들어 로그인 직후 그 리스트 안에 자신의 ID가 있으면 관리자로 인식되게끔 하였다. SESSION의 level 값도 추가하여 1은 guest, 2는 admin으로 동작하게 하였다. 아래와 같이 코드를 작성하여 메인 header에서 나타나는 글자를 일반 유저와 관리자로 구분하였다. 카드가 나오는 find.php 페이지는 다음과 같이 로그인이 되어 있고 level이 2..

2020 Web Develop 2020.12.06

ptmalloc2 bin 분석

1. fastbin M_MXFAST 매개변수를 사용하여 청크의 범위를 설정한다. (1이면 사용, 0이면 fastbin을 사용하지 않음) default 범위는 0~80*(size_t)/4까지 일반적으로 사용하는 범위는 0 ~ 64*(size_t)/4 32bit에서는 size_t가 4, 64bit에서는 8 따라서 fastbin의 상한은 32bit에서는 64byte(0x40), 64bit에서는 128byte(0x80) LIFO (Last In First Out) 방식을 채택, 즉 마지막으로 해제된 chunk를 먼저 재사용한다. fastbin에서 서로 chunk가 인접해 있어도 병합하지 않는다. 2. smallbin MIN_LARGE_SIZE보다 작은 값을 사용 : 32bit에서는 512(0x200), 64bi..

Hacking/Pwnable 2020.12.01

2020 Layer7 CTF 후기

요약 MISC 3, Forensic 1, Pwn 1 총 5문제를 솔브하여 고등부 부문에서는 7등, 전체로는 18등을 찍었다. 참여 배경 & 시행착오 어제는 드림핵 CTF Round #3하고 Layer7 CTF 둘을 병행하며 참여하였다. 그런데 드림핵 CTF는 너무 어려웠기도 했고 Layer7 CTF가 더 문제가 많고 분야도 다양하고, 중등부or고등부or일반부로 나뉘어져있어서 고등부 부문 3등상이라도 노려보려고 하였다. 우선 쉬운 MISC 2문제와 Forensic 1문제를 풀고 포너블 문제를 잡았다. Mask store 문제를 한 2시간 반정도 풀이한 것 같은데, 처음에 생각한 취약점이 안먹혀서 이 방법이 아닌가보다,, 하고 끙끙대고 있었다. 1시간 뒤에 다시 해보니까 갑자기 잘 되서 익스 도전을 해보니 ..

Hacking/CTF 후기 2020.11.15

웹개발 일지 12일차 (20.11.08)

전에는 카드의 내용 9개를 전부 html에 정적으로 삽입한 다음, 단순히 불러오는 방식으로 웹페이지를 구현하였는데, 카드를 추가한 후에 동적으로 카드가 생성되도록 만들기 위해 find.php의 코드를 수정해 보았다. 처음에는 아래의 사진과 같이 9개의 카드가 코딩되어 있는 것을 알 수 있다. 각각의 id에 맞춰서 미리 저장되어 있던 내용을 팝업으로 출력시키는 방식으로 코딩을 했는데, 이번에는 DB에 저장되어 있는 idx를 이용해서 하나의 div를 여러 개 자동으로 만들어주게끔 php 코드를 작성하였다. 간단하게 말하자면, DB와 연결 후 search 파라미터가 설정되지 않았을 경우 모든 카드를 SELECT문으로 가져오고, mysqli_fetch_array로 데이터를 하나씩 가져와서 html에 출력해 주는..

2020 Web Develop 2020.11.08