post-thumbnail

[드림핵 웹해킹] Wargame : session

코드를 살펴보겠습니다.FLAG 변수에 flag.txt의 내용을 저장하고, users에 사용자명과 비밀번호를 딕셔너리 형태로 저장합니다. 그리고 session_storage 라는 세션을 저장할 빈 딕셔너리를 하나 만듭니다.루트 경로에서는 sessionid 쿠키의 값을

2025년 4월 1일
·
0개의 댓글
·
post-thumbnail

[드림핵 웹해킹] Wargame : cookie

문제 먼저 문제 코드를 살펴보겠습니다. 풀이 코드를 부분별로 분석해 보곘습니다. 먼저 try문으로 flag.txt 파일에 존재하는 플래그를 FLAG 변수에 저장합니다. 사용자 정보가 { 계정 : 비밀번호 } 형태의 딕셔너리로 저장됩니다. @app.route(

2025년 3월 31일
·
0개의 댓글
·

[암호학] 해시 함수

해시 함수(Hash Function)는 임의 데이터를 입력으로 받아서 고정된 크기의 데이터를 반환하는 함수입니다. 여기서 반환된 데이터를 해시 값(Hash Value)이라고 부릅니다.해시함수중는 암호학적 해시함수(Cryptographic Hash Function)와 비

2025년 3월 11일
·
0개의 댓글
·

[드림핵 암호학] 현대 암호

많은 고전 암호에서는 송신자와 수신자가 같은 키를 가지고 있어야 했습니다. 이처럼 송신자와 수신자가 같은 키를 공유해야 하는 암호 시스템을 대칭키 암호 시스템(Symmetric key cryptosystem)이라고 부릅니다.같은 키를 공유하는 특성상, 대칭키 암호 시스

2025년 2월 17일
·
0개의 댓글
·
post-thumbnail

[드림핵 암호학] 고전 암호

고전 암호는 컴퓨터와 같은 고성능 연산 장치가 발명되기 이전에, 비교적 간단한 기계나 손 등으로 암복호화를 수행하던 암호를 말합니다. 대부분 컴퓨터를 사용하면 쉽게 복호화할 수 있기 때문에 현대에는 사용되지 않습니다.고대 암호는 일반적으로 치환(Substitution

2025년 2월 17일
·
0개의 댓글
·

[드림핵 암호학] sagemath 설치

sagemath 설치

2025년 2월 17일
·
0개의 댓글
·
post-thumbnail

[드림핵 리버싱] Wargame : patch

위의 Patch.exe를 실행한 화면을 보면 플래그 부분이 볼 수 없게 칠해져 있음을 확인할 수 있습니다.Patch 문제는 WinAPI를 이용해 만들어진 GUI 프로그램이기 때문에 main함수 대신 WinMain 함수를 찾아야 합니다. 그럼 IDA로 WinMain 함수

2025년 1월 28일
·
0개의 댓글
·
post-thumbnail

[드림핵 리버싱] Wargame : rev-basic-2

IDA를 사용해 main 함수를 디컴파일 해보겠습니다.memset 이후에 printf 함수와 scanf 함수가 실행됩니다.if문의 조건인 sub_140001000 함수를 살펴보겠습니다.for문을 살펴보면 aC4 \* i와 a1i를 11바이트만큼 비교하여 같으면 1을 리

2025년 1월 28일
·
0개의 댓글
·
post-thumbnail

[드림핵 리버싱] Wargame : rev-basic-1

문제 풀이 문제 파일인 chall1.exe 파일을 IDA에서 실행해보겠습니다. 아래는 main 함수를 디컴파일한 코드입니다.

2025년 1월 28일
·
0개의 댓글
·
post-thumbnail

[드림핵 리버싱] Wargame : rev-basic-0

문제 풀이 문제를 IDA를 사용하여 분석해 보겠습니다.

2025년 1월 28일
·
0개의 댓글
·

[드림핵 리버싱] Windows Memory Layout

윈도우의 PE 파일은 PE 헤더와 1개 이상의 섹션으로 구성되어 있습니다. 여기서 섹션이란, 유사한 용도로 사용되는 데이터가 모여있는 영역입니다.셋견에 대한 정보는 PE 헤더에 적혀있습니다. PE 헤더에 저장되는 섹션과 관련된 데이터 중, 중요한 것은 다음과 같습니다.

2025년 1월 28일
·
0개의 댓글
·
post-thumbnail

[드림핵 시스템 해킹] Wargame : validator

Partial RELRO만 적용되어 있습니다.문제의 압축파일을 해제했는데 소스 파일이 없습니다. 이런 경우 IDA같은 툴을 사용해 디컴파일을 하여 문제를 해결할 수 있습니다.다음은 IDA로 validator_dist를 연 화면입니다.이제 f5를 눌러 디컴파일해서 mai

2025년 1월 23일
·
0개의 댓글
·
post-thumbnail

[드림핵 시스템 해킹] Wargame : cmd_center

Full RELRO, NX, PIE가 적용되어 있습니다.read(0, center_name, 100)에서 스택 오버플로우가 가능해 보입니다. system(cmd_ip)에서 /bin/sh를 실행해 셸을 얻을 수 있어 보입니다. cmd_ip의 첫 8 바이트는 ifconfi

2025년 1월 23일
·
0개의 댓글
·
post-thumbnail

[드림핵 시스템 해킹] Wargame : sint

NX만 적용되어 있습니다.get_shell 함수가 존재하며 signal(SIGSEGV, get_shell) 함수는 Segmentation Fault 시그널을 받았을 때 get_shell 함수가 실행됩니다. read에서 크기를 size -1로 받고 read의 세 번째 인

2025년 1월 23일
·
0개의 댓글
·
post-thumbnail

[드림핵 시스템 해킹] Wargame : tcache_dup2

Partial RELRO, Canary, NX가 적용되어 있으므로 GOT overwrite가 유효해 보입니다.create_heap을 통해 원하는 크기의 청크를 만들 수 있고, delete_heap을 통해 청크를 해제할 때 포인터를 초기화하지 않으므로 modify_hea

2025년 1월 23일
·
0개의 댓글
·
post-thumbnail

[드림핵 시스템 해킹] Wargame : tcache_dup

Canary와 NX가 적용되어 있습니다. Partial RELRO가 적용되어 있으므로 여전히 GOT Overwrite는 유효해 보입니다.create로 원하는 크기의 청크를 할당할 수 있고, delete에서 청크를 해제할 때 포인터를 초기화하지 않으므로 Double Fr

2025년 1월 23일
·
0개의 댓글
·
post-thumbnail

[드림핵 시스템 해킹] Wargame : Tcache Poisoning

Full RELRO와 NX가 적용되어 있으므로 Hook Overwrite를 고려해 볼 수 있습니다.Allocate에서 원하는 크기의 청크를 할당할 수 있고, Edit에서 청크의 데이터를 수정할 수 있습니다. Free에서 청크를 해제하고 나서 chunk 포인터를 초기화하

2025년 1월 23일
·
0개의 댓글
·

[드림핵 시스템 해킹] Double Free Bug

Double Free Bug(DFG)는 같은 청크를 두 번 해제할 수 있는 버그를 말합니다. ptmalloc2에서 발생하는 버그 중 하나이며, 공격자에게 임의 주소쓰기, 읽기, 임의 코드 실행 등의 수단으로 활용될 수 있습니다.Dangling Pointer는 Doubl

2025년 1월 22일
·
0개의 댓글
·
post-thumbnail

[드림핵 시스템 해킹] Wargame : uaf_overwrite

앞에서 배운 보안 기법들이 전부 적용되어 있습니다.Human과 Robot이라는 구조체가 존재하고, 할당하는 human_func와 robot_func 함수가 존재합니다.human_func 함수와 robot_func 함수를 보면, 구조체 변수를 위한 메모리 영역을 할당할

2025년 1월 22일
·
0개의 댓글
·

[드림핵 시스템 해킹] Use After Free

Dangling Pointer는 유효하지 않는 메모리 영역을 갖는 포인터를 말합니다. 메모리의 동적 할당에 사용되는 malloc 함수는 할당한 메모리의 주소를 반환합니다. 메모리를 해제할 때는 free 함수를 호출합니다. 하지만 free 함수는 청크를 ptmalloc

2025년 1월 22일
·
0개의 댓글
·