해킹
-
IDA 사용법 및 문법해킹/리버싱 이론 2024. 10. 7. 09:34
Dreamhack의 Exercise : Helloworld 강의를 정리함.IDA 실행 후 exe 파일 드래그 -> 바로 ok정적분석main함수를 찾기 위해 문자열 검색 (shift+F12) ->더블 클릭하여 따라감참조하는 함수 찾기 : 스트링 클릭 후 우클릭 -> List cross reference to... -> 해당 변수를 참조하는 모든 주소가 출력 됨.main함수를 찾았으면 디컴파일 F5*_acrt_iob_func 함수 : 스트림을 가져옴 , 인자로 1이 들어갈 경우 stdout, 0이면 stdin숫자를 문자로 변환 -> 숫자에 커서올리고 r a dup(b) -> b 가 a번 반복됨data 주소에서 (Shift+E) -> hex string으로 export 가능 -> python의 bytes.f..
-
03 - x86 Assembly해킹/리버싱 이론 2024. 10. 6. 22:12
명령어데이터 이동(Data Transfer)movmov dst, srcsrc에 들어있는 값을 dst에 대입lealea dst, srcsrc의 유효 주소(Effective Address, EA)를 dst에 저장산술 연산(Arithmetic)incinc opop의 값을 1 증가시킴decdec opop의 값을 1 감소 시킴addadd dst, srcdst에 src의 값을 더함subsub dst, srcdst에서 src의 값을 뺌논리 연산(Logical)andand dst, srcdst와 src의 비트가 모두 1이면 1, 아니면 0oror dst, srcdst와 src의 비트 중 하나라도 1이면 1, 아니면 0xorxor dst, srcdst와 src의 비트가 서로 다르면 1, 같으면 0notnot opop의 ..
-
02 - 컴퓨터 구조 / Window memory layout해킹/리버싱 이론 2024. 10. 6. 21:06
컴퓨터 구조컴퓨터 구조 구성기능 구조의 설계폰 노이만 구조하버드 구조수정된 하버드 구조명령어 집합구조(Isntruction Set Architecture) - CPU의 명령어 설계, CPU가 해석하는 명령어의 집합x86, x86-64ARMMIPSAVR마이크로 아키텍처 - CPU의 하드웨어적 설계캐시 설계파이프라이닝슈퍼 스칼라분기 예측비순차적 명령어 처리하드웨어 및 컴퓨팅 방법론직접 메모리 접근폰 노이만 구조 중앙처리장치 (CPU): 컴퓨터의 두뇌로, 프로그램의 연산과 시스템 제어를 담당합니다. 주요 구성 요소는 산술논리장치(ALU), 제어장치(Control Unit), 그리고 레지스터(Register)입니다.기억장치: 데이터를 저장하는 장치로, 주기억장치(RAM)는 프로그램 실행 중 필요한 데이터를 임시..
-
01 - 리버싱해킹/리버싱 이론 2024. 10. 6. 18:34
리버싱(Reversing) - 만들어진 프로그램을 역으로 해체하여 코드 단에서 분석BinaryCompiler : 고급언어를 목적 코드(Object Code)로 번역하는 프로그램 - GCC, Clang, MSCVCompile : 소스코드를 목적 코드(Object Code) 형식으로 번역하는 동작Assembler : Assembly Language를 기계어로 번역하는 프로그램Binary : 프로그램과 동의어 (Stored-Program Computer에서 프로그램이 저장장치에 이진 형태로 저장되기 때문)Interpreting : 사용자의 입력, 스크립트를 바로바로 번역하여 CPU에 전달하는 동작 - Python, JavascriptInterpreter : 인터프리팅을 하는 프로그램 더보기컴파일장점:1. 속도..
-
02-02. Client Side Attack 중급 - Content Security Policy(CSP) Bypass해킹/웹해킹 이론 2023. 11. 24. 01:18
Content Security Policy(CSP) Content Security Policy(CSP, 컨텐츠 보안 정책)는 웹 페이지에 사용될 수 있는 자원의 위치, 출처 등에 제약을 걸어 공격자가 삽입하거나 요청을 보내지 못하도록 막을 수 있다. CSP는 HTTP의 헤더로 정의하거나 meta tag의 element로도 정의 할 수 있다. CSP의 기본정책 Inline Code 사용 금지 src 속성을 제외한 on* 이벤트 핸들러, javascript: URL 스킴 또한 허용하지 않는다. Eval(new Function(), setTimeOut(), setInterval() 문자열 텍스트를 코드 형태로 변환하는 함수를 허용하지 않음 / 인라인 함수 형태의 파라미터는 허용 setTimeout("alert..
-
02-01. Client Side Attack 중급 - XSS Filtering Bypass해킹/웹해킹 이론 2023. 11. 24. 01:03
이벤트 핸들러 속성 HTML 태그의 속성 값으로 스크립트를 포함할 수 있다. 다만 이벤트 핸들러의 속성에 따라 실행되기도, 되지않기도 함에 주의. onload onerror onfocus autofocus 속성을 이용해 자동으로 포커싱하거나 URL의 hash에 input tag의 id를 넣어 포커싱 시킨다. (e.g. http://dreamhack.io/#inputID) 문자열 치환 단순 제거 방식일 경우 -> 제거되는 문자열을 중간에 삽입한다. (scr + script + ipt) 활성 하이퍼링크 a / iframe tag에 사용되는 javascript: 스키마는 js code를 실행시킨다. 특수 문자를 포함한 우회 예시 실행전 정규화를 통해 (\x01, \x04, \t)와 같은 특수문자가 제거되고 대..
-
03-04. Server Side Attack - File Vulnerability해킹/웹해킹 이론 2023. 11. 21. 21:35
File Upload Vulnerability Path Traversal 이용자가 업로드할 파일의 이름을 마음대로 정할 수 있을 때 메타 문자를 사용해 서비스 내의 중요한 파일을 덮어 쓸 수 있다. 악성파일 업로드 웹 셸 업로드 (php) 공격자가 임의 php 소스파일을 .php 확장자로 업로드하고 GET method를 포함하거나 system method를 포함하면 CGI에 의해 해당 코드가 실행된다. Stored XSS (html) 악의적인 스크립트를 삽입한 html페이지를 업로드 함으로써 XSS를 시도할 수 있다. File Download Vulnerability Path Traversal 이용자가 업로드할 파일의 이름을 마음대로 정할 수 있을 때 메타 문자를 사용해 서비스 내의 중요한 파일을 다운로..
-
03-03. Server Side Attack - Command Injection해킹/웹해킹 이론 2023. 11. 21. 21:04
이용자의 입력을 시스템 명령어로 실행하게 하는 취약점을 Command Injection이라고 부른다. 우리가 shell에서 cat를 입력해 file을 볼 수 있듯이 system함수에 "cat file_name"을 전달 해 같은 동작을 수행할 수 있다. 이렇게 system 함수에 전달되는 값이 사용자의 입력으로 들어올 때 우리는 command injection을 시도할 수 있다. 이는 리눅스 셸 프로그램이 지원하는 메타 문자 때문이다. 메타문자 구분 설명 Example `` 명령어 치환 ``안에 들어있는 명령어를 실행한 결과로 치환 $ echo `echo theori` theori $() 명령어 치환 $()안에 들어있는 명령어를 실행한 결과로 치환됩니다. 이 문자는 위와 다르게 중복 사용이 가능합니다. (..