○ Environment attack기본적으로 리눅스 명령은 파일에 의해서 동작한다. 리눅스에서 제공하는 명령어는 /bin, /usr/bin 등의 디렉터리에 위치한다. 명령어를 입력하면 환경 변수에 명시된 디렉터리에서 명령어를 탐색하고, 실행하기 때문에 명령어의 경로를 입력하지 않아도 된다. 보통 사용하는 ls, id, find, touch, cat, sh 등의 시스템 명령어들은 bin 디렉토리 내부에 정의된 파일들이 실행되는 구조다. PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"export 명령으로 환경변수들을 출력하면 여러가지 환경변수가 나오는데, 그 중에서 path 환경변수를 볼 수 있다. path 환경변수..
OAuth는 인터넷 사용자들이 ID, PW를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. 즉, 현재 서비스의 ID와 PW를 입력하지 않고 인증할 수 있는 프로토콜이다. 예를 들어 Google에 로그인한 후 Google 자격 증명을 이용해서 현재 서비스에 액세스했다면 OAuth를 사용한 것이다. oAuth는 보통 SSO(Single Sign On) 시스템에서 사용한다. SSO는 1번의 로그인으로 여러 서비스를 이용할 수 있는 시스템을 뜻한다. 즉, SSO 시스템을 구축하기 위해서는 oAuth 프로토콜을 이용한 인증시스템이 필요하다. oAuth를 이용하는 시스템은 단순히 간단한 ..
JS prototype 개념prototype pollution을 이해하기 위해서는 JS의 object prototype과 constructor에 대한 개념을 알아야한다. 자바스크립트는 다음과 같은 특징이 있다.모든 것은 객체이고, 객체로서 동작하는 완전한 객체지향 언어다.var keyme = new Person('keyme');객체는 생성자의 prototype 객체를 상속한다.keyme라는 객체는 Person.prototype을 상속받는다.객체는 생성자 함수를 사용해서 만든다.생성자 함수 → Person() prototype은 객체 지향 프로그래밍에서 상속을 구현하는 데 사용되는 중요한 개념이다. 모든 객체는 prototype을 가지고 있으며, 이를 통해 객체 간의 상속 및 속성, 메서드 공유가 가능하..