전체 글
-
dreamhack stage 3 - Tool:gdb보안/SYSTEM HACKING 2024. 3. 15. 13:02
STAGE 3 Tool:gdb 1. 디버거 버그(bug): 실수로 발생한 프로그램의 결함 디버거(Debugger) : 버그를 없애기 위해 사용하는 도구 만든 배경: 버그를 잡는 어려움을 해결하기 위해 개발된 도구 작동 과정: 프로그램을 어셈블리 코드 단위로 실행 + 실행 결과를 사용자에게 보여줌 -> 개발자는 디버거를 사용해 코드의 문제점을 찾을 수 있다. 그런데, 디버거로 인해 누구나 버그 탐색의 효율을 높일 수 있게 되었지만 버그 발견이 쉬워지면서 해커들은 취약점을 발견하기 쉬워졌다. 2. gdb & pwndbg 2-1. 정의와 설치, 예제 gdb (GNU debugger) : 리눅스의 대표적인 디버거 - 다양한 플러그인들이 개발되었고 Ubuntu 18.04에는 기본적으로 설치되어 있다. ..
-
dreamhack stage 2 - x86 Assembly보안/SYSTEM HACKING 2024. 3. 15. 12:46
STAGE 2 x86 Assembly x86 Assembly:Essential Part(1) 0. 서론 기계어(Machine Code)라는 언어가 있다. 시스템 해커는 컴퓨터의 언어로 작성된 소프트웨어에서 취약점을 발견해야 한다. 그런데 기계어는 0과 1로만 구성되어있어 이해하기 어렵다. --> David Wheeler 가 EDSAC을 개발하면서 어셈블리 언어와 어셈믈러를 고안했다. 어셈블러는 어셈블리어로 코드를 작성하면 컴퓨터가 이해할 수 있는 기계어로 코드를 치환해준다. --> 기계어를 어셈블리 언어로 번역하는 역어셈블러를 개발했다. 기계어로 구성된 소프트웨어를 역어셈블러에 넣으면 어셈블리 코드로 번역된다. 1. 어셈블리어와 x86-64 어셈블리 언어 : 컴퓨터의 기계어와 치환되는 언어 - 기계어..
-
dreamhack stage 2 - Computer Architecture보안/SYSTEM HACKING 2024. 3. 15. 11:44
STAGE 2 Computer Architecture Background: Computer Architecture 0. 서론 컴퓨터 구조, 명령어 집합 구조, 인텔의 x86-64에 대해 알아볼 예정 컴퓨터 과학을 배워야 하는 이유 시스템 해킹의 기술은 컴퓨터 과학에 뿌리를 두고 있다. 컴퓨터는 여러 부품의 도움으로 작동한다. CPU: 컴퓨터의 작동에 핵심이 되는 연산 처리 저장장치: 데이터를 저장 GPU: 그래픽 데이터 랜카드: 네트워크 통신 사운드 카드: 소리 데이터 처리 ... --> 서로 다른 부품이 모여 기계가 작동하게 하는 것은 기본 설계가 존재하기 때문이다. 여기에서 설계를 컴퓨터 구조(Computer Architecture) 라고 한다. 명령어 집합구조(Instruction Set Arc..
-
dreamhack stage 2 - Linux Memory Layout보안/SYSTEM HACKING 2024. 3. 15. 09:42
STAGE 2 Linux Memory Layout Background: Linux Memory Layout 0. 서론 컴퓨터는 크게 CPU와 메모리로 구성되어 있다. CPU - 실행할 명령어와 명령어 처리에 필요한 데이터를 메모리에서 읽고 Instruction Set Architecture (ISA)에 따라 이를 처리하고 연산의 결과를 다시 메모리에 적재한다. - CPU의 동작과 메모리 사이에는 밀접한 연관이 있다 : 공격자가 메모리를 악의적으로 조작 가능하다면 이는 메모리가 오염됐다고 표현한다 --> 이를 유발하는 취약점 == 메모리 오염 (Memory Corruption) 취약점 많은 공격기법이 메모리 오염을 기반으로 한다. 커리큘럼에서 소개할 내용: Stack Buffer Overflow..
-
dreamhack stage 4 - ClientSide:XXS보안/WEB HACKING 2024. 3. 15. 00:23
Stage 4 Cross-Stie-Scripting (XSS) ClientSide: XSS 0. 서론 클라이언트 사이드 취약점: 웹 페이지의 이용자를 대상으로 공격할 수 있는 것 Cross Site Scripting (XSS)에 대해 알아볼 예정이다. 1. XSS - 클라이언트 사이드 취약점 - 실행 방법: 공격자가 웹 리소스에 악성 스크립트 삽입 -> 이영자의 웹 브라우저에서 스크립트 실행 - 실행 결과: 특정 계정의 세션 정보 탈취, 기능 수행 가능 - SOP 보안 정책 등장 이후 XSS가 어려워졌으나 지속되는 중 XSS 발생 종류 발생 형태에 따라서 종류가 구분된다. XSS 발생 예시 클라이언트가 HTTP 형식으로 웹 서버에 리소스를 요청하면 웹 리소스 시각화 후 보여준다. 이..
-
드림핵 웹해킹 stage 3-cookie&session보안/WEB HACKING 2024. 3. 14. 23:17
STAGE 3 Cookie&Session Background: Cookie&Session 0. 서론 웹 서버는 클라이언트와 HTTP 프로토콜을 사용해 통신한다. 손님 계정과 관리자 계정으로 각각 로그인했을 떄 서로 다른 결과를 제공한다. HTTP 프로토콜로 웹 서버와 통신할 때는 메소드와 URL 등이 포함되어 있다. 그리고 헤더를 통해서 웹 서버에게 요청을 보내고 웹 서버는 헤더를 읽고 클라이언트에게 결과 값을 반환한다. 헤더에는 클라이언트의 정보와 요청의 내용을 구체화하는 데이터가 포함되어있는데 클라이언트의 인증 정보가 포함될 수 있다. 1. 쿠키(Cookie) : Key 와 Value로 이루어진 일종의 단위 생성 배경 클라이언트의 IP주소와 User-Agent는 고유하지 않은 정보이며 HTTP..
-
드림핵 웹해킹 stage 2-웹 브라우저보안/WEB HACKING 2024. 3. 14. 21:11
STAGE 2 웹 기본 상식 - Background: Web Browser 1. 웹 브라우저 웹은 글로벌 네트워크 위에 구현되어 있고 정해진 프로토콜을 기반으로 통신한다. 20세기에 등장한 웹 브라우저는 서버와 HTTP 통신을 대신해주고 수신한 리소스를 시각화했다. 웹 브라우저는 뛰어난 이용자 경험(User-eXperience, UX)을 제공하는 소프트웨어 중 하나이다. 이용자는 내부에서 어떤 연산이 일어나는지 전혀 모른다. 이용자가 주소창에 주소를 입력했을 때 웹 브라우저가 하는 동작 1. 웹 브라우저의 주소창에 입력된 주소를 해석한다. (URL 분석) 2. 입력된 주소에 해당하는 주소 탐색 (DNS 요청) 3. HTTP를 통해 해당 주소에 요청 4. 해당 주소의 HTTP 응답 수신 5. 리소스..
-
드림핵 웹해킹 stage 1, stage 2-웹 기본상식보안/WEB HACKING 2024. 3. 14. 20:08
STAGE 1 0. 서론 웹은 우리의 삶과 밀접한 핵심 기술 중 하나이다. 웹 기술에 대한 의존성이 높아진 만큼 웹 서비스를 안전하게 구현하고 관리하는 것이 중요하다. 강의의 목표는 웹 해킹의 기초적인 지식과 기술을 전달하는 것이다. STAGE 2 웹 기본 상식 - Background: HTTP/HTTPS 0. 서론 언어에서의 약속을 잘 지켜야 한다. 1. 인코딩 컴퓨터의 모든 데이터는 0과 1로 수겅된다, -> 인코딩 표준 - 아스키, 유니코드 - 아스키: 7비트 데이터에 대한 인코딩 표준 알파벳과 특수 문자 등을 표현할 수 있음. ex. A = 1000001 컴퓨터 개발 초기에는 문자권마다 고유의 인코딩 표준을 사용했지만 호환성 측면에서 부담이 되었고, 인코딩 호환이 되지 않는 문제가 발생..
-
XSS game 05, 06 (8주차)보안/WEB HACKING 2024. 3. 14. 18:05
XSS game 05 문제: Angular는 애플리케이션을 안전하게 개발할 때 자체 규칙을 가진 매우 인기 있는 프레임워크입니다. 그 중 하나는 Angular의 템플릿 시스템이 실행되기 전에 DOM을 수정할 때 주의해야 한다는 것입니다. 이 과제는 이것이 왜 중요한지를 보여줍니다. 목표는 응용 프로그램의 취약성을 이용하여 JavaScript alert() 함수를 실행하도록 만드는 것입니다. aa를 입력한 후 페이지 소스코드를 확인해보자. 아래에 UTM_PARAMS 가 적혀있다. UTM 파라미터 사용 : 각 유입 채널의 성과를 알아내고자 할 때 어떤 사용자가 어떤 채널로 유입되었는지에 대한 데이터를 쌓고 싶을때 링크 중간에 물음표가 나오면 물음표 앞까지가 원래 url 파라미터 종류 - utm..