8

웹해킹 7차시 Prototype Pollution

Prototype Pollution Java, Python 같은 언어처럼 Javascript도 객체지향 언어다. 하지만 객체지향을 구현하는 방법에서 약간의 차이가 있다. 객체지향을 표방한 다른 프로그래밍 언어에서는 ‘class’ 라는 개념을 볼 수 있는데, Javascript에서는 ‘class’라는 개념이 없다. 그래서 Javascript에는 prototype이라는 Javascript 고유 특성을 이용해 상속 기능을 구현했다. 그리고 Javascript의 이러한 특성을 이용한 취약점이 있다. 기본적으로 객체 리터럴의 __proto__는 Object.prototype과 같다는 것을 이용한 것인데 Javascript로 어떻게 터지는지 보겠다. const a = {}; console.log(a.__proto_..

2023.06.07

웹해킹 3차시 php정리

PHP PHP(PHP: Hypertext Preprocessor)는 C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어다. -장점 1. 주요 운영체제와 대부분의 웹 서버에서 지원한다. 2. 다른 프로그래밍 언어보다 직관적으로 코드를 작성할 수 있어서, 작성해야 하는 코드의 양이 적다. 3. 텍스트 처리에 특화되어 있어 HTML 문서 처리에 적합하다. -단점 1. 간단한 사이트를 제작하기 위해 만든 언어라서 복잡한 사이트를 만드는 데는 효율적이지 못하다. 2. 보안에 안전하지 않은 언어 구조를 가진다. 문법 //코드영역 echo() 함수는 C언어의 printf() 함수나 C++의 cout 객체와 같이 HTML 스트림에 문자열을 출력해 준다. $num_01 = 10; //변수 선언은 ..

2023.05.10

웹해킹 2차시 JavaScript 정리

JavaScript는 객체 기반의 스크립트 언어로 웹의 동작을 구현할 수 있다. 주로 웹 브라우저에서 사용되거나 프레임워크를 활용하여 서버 측 프로그래밍도 가능하다. 변수 JavaScript에서는 'var' 또는 'let'으로 변수를 선언할 수 있다. var a = '과제 싫어'; console.log(a); // 과제 싫어 let b = '과제 싫어'; console.log(b); // 과제 싫어 겉보기엔 비슷해 보이지만 둘은 사용법이 조금 다르다. 먼저 var는 선언한 위치에 상관없이 함수나 전역에서 사용 가능하며 중복 선언이 가능하다. 또한 같은 이름의 변수를 다시 선언하면 기존에 선언한 변수 대신 새로운 변수가 생성된다. 반면에 let은 변수를 선언한 블록 안에서만 접근이 가능하다. 또한 var와..

2023.04.26

웹해킹 1차시 정리

HTML HTML은 Hyper Text Markup Language의 약자이다. 이는 Hyper Text 기능을 가진 문서로 웹 페이지를 위한 마크업 언어다. Opening tag는 여는 태그, Closing tag는 닫는 태그로 이 둘을 쓰는 이유는 Contents를 감싸기 위함이다. 흔한 웹사이트에서 개발자 모드로 요소들을 보면 거의 대부분이 이런 형식으로 구성되어 있다. 이러한 것들은 Front-end와 Back-end로 나뉘는데, Front-end는 사용자에게 보여지는 화면이고 Back-end는 사용자가 관리하지 못하는 서버나 데이터베이스를 관리하는 기술이다. HTML, JS, CSS 등이 Front-end에 속한다. php, django, RAILS 등이 Back-end에 속한다. HTTP HT..

2023.04.18