JS prototype 개념prototype pollution을 이해하기 위해서는 JS의 object prototype과 constructor에 대한 개념을 알아야한다. 자바스크립트는 다음과 같은 특징이 있다.모든 것은 객체이고, 객체로서 동작하는 완전한 객체지향 언어다.var keyme = new Person('keyme');객체는 생성자의 prototype 객체를 상속한다.keyme라는 객체는 Person.prototype을 상속받는다.객체는 생성자 함수를 사용해서 만든다.생성자 함수 → Person() prototype은 객체 지향 프로그래밍에서 상속을 구현하는 데 사용되는 중요한 개념이다. 모든 객체는 prototype을 가지고 있으며, 이를 통해 객체 간의 상속 및 속성, 메서드 공유가 가능하..
공급망 공격○ 공급망 공격 1die로 분석하면 VB 6 버전의 프로그램이다. 프로그램을 실행하면 MSCOMCTL.OCX와 관련된 오류가 발생한다. MSCOMCTL.OCX 가 없어서 프로그램 실행이 안됩니다 MSCOMCTL.OCX 가 없어서 프로그램 실행이 안됩니다MSCOMCTL.OCX 가 없다고 프로그램 실행이 안됩니다.component 'MSCOMCTL.OCX' or one of this dependencies not correctly registered: a file is missing or invaild 라는 오류 메시지가 뜨는 경험을 하셨다면 해결방법입니다. 이omnislog.com링크의 방법으로 해결하면 실행과 분석이 가능하다. C:\Windows\system32>regsvr32 MSCOMCTL..
PWNflash-memory○ checksec└─# checksec app [*] '/root/dream/flash-memory/app' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: PIE enabledPartial RELRO이므로 GOT overwrite를 이용한 풀이가 가능할 것이라고 생각하고 넘어갈 수 있다. 몇 가지 기능들이 존재하는데, 기능들을 분석하는 것이 중요한 문제이므로 분석하고 넘어가도록 하자. stream = fopen("/proc/self/maps", "r");if ( !stream ){ printf("C..
개념정리House of Spirit은 fastbin을 공격하는 기법으로, 같은 크기만큼 재할당 하는 경우에는 같은 주소를 반환하는 fastbin 특성을 이용한다. free() 함수의 인자를 조작해서 임의 메모리를 해제할 수 있을 때 사용할 수 있는 기법이다. 정확히는 스택/힙에 fake chunk size를 쓰고 해당 주소에서 0x8을 더한 주소를 free 할 수 있는 경우에 발생한다. ○ House of force와의 차이점House of force은 실제 Top chunk size를 조작하는 공격 기법이지만, House of Spirit은 Top chunk size를 변경할 수 없는 경우에 fake chunk를 구성해서 공격하는 기법이라는 차이점이 있다. 예를 들어보자. 다음과 같이 스택에 prev_..
개념정리House of Force 기법은 top chunk의 size를 조작하여, 임의 주소에 힙 청크를 할당할 수 있는 공격 기법이다. top chunk는 기본적으로 다음 할당을 위한 주소를 저장하는 역할을 한다고 이해하면 된다. 따라서 top chunk의 size를 조작한다면 다음에 할당할 주소를 조작하는 것과 같기 때문에 임의 주소에 쓰기가 가능한 것이다. House of Force는 공격자가 top chunk의 size를 조작하고, 원하는 크기의 힙 청크를 할당할 수 있을 때 활용 할 수 있다. ○ _ini_mallocstatic void *_int_malloc (mstate av, size_t bytes){ INTERNAL_SIZE_T nb; /* normalized ..