2025/02/18 7

드림핵 150문제 풀었다

물론 블로그 글은 2025년2월 18일기준으로159번째지만..9개는 아직 못푼 상태;; 현재 지식 부족으로 미래의 더 똑똑해진 내가 풀 예정..(아마도?)      4월에 열릴 닷핵 컨퍼런스 티켓도 이미 구매한 상태다...20만원 바로 플렉스~티오리 채용상담 받을 수 있다는데 무조건 가야지 아 ㅋㅋㅋ 행복해~ 즐겁다!! 보안뉴스 리뷰도 다시 조만간 시작해야겠다국비 정보보안 수업에, 포폴작업에, 프로젝트에, 자격증 공부에 할게 너무 많았어가지고...12월말쯤에 잠정 중단했었는데, 다시 해야지~!

Dreamhack 2025.02.18

GOT(Global Offset Table)

📌 GOT 주소란? (일상적인 예시 포함)💡 GOT(Global Offset Table)란?📌 **"GOT는 프로그램이 실행 중에 외부 라이브러리 함수의 실제 주소를 저장하는 테이블"**입니다.일상적인 비유로 설명하자면…🔹 전화번호부(GOT)와 통화 연결 시스템(PLT)우리 휴대폰에는 연락처(GOT)가 저장되어 있음.예를 들어 "엄마"를 누르면 실제로는 **"010-1234-5678"**로 연결됨.우리가 "엄마"라고 부를 때마다 이 전화번호부를 참고해서 실제 번호를 찾아 연결함.📌 GOT는 이런 전화번호부처럼, 실행 중에 함수의 실제 주소를 저장하는 역할을 함.📌 GOT와 PLT의 관계 (함수 호출 과정)💡 C 프로그램이 printf() 같은 라이브러리 함수를 호출하는 과정을 살펴볼게요.🔹..

Study/System 2025.02.18

보호 기법(Exploit Mitigation)

💡 보호 기법(Exploit Mitigation) 일상 예시프로그램이 해킹당하지 않도록 보호하는 여러 가지 기법들이 있습니다.이런 보호 기법을 일상적인 예시로 쉽게 설명해볼게요! 🚀🔥 주요 보호 기법 & 일상적인 비유 🔥1️⃣ Stack Canary 🦜 (스택 카나리)💡 "음식에 독이 들었는지 확인하는 왕"옛날 왕들은 음식이 안전한지 확인하기 위해 **음식을 먼저 먹는 하인(카나리)**을 둠.만약 하인이 죽으면? 음식에 독이 들었다는 걸 알아차리고 왕은 안 먹음!BOF(버퍼 오버플로우) 공격을 방지하기 위해, 스택에 랜덤한 값(Canary)을 넣어놓고 변조 여부를 체크하는 원리!📌 즉, 해커가 스택을 조작하려고 하면 Canary 값이 변하기 때문에, 프로그램이 이를 감지하고 종료함!🔹 일상..

Study/System 2025.02.18

BOF (버퍼 오버플로우, Buffer Overflow)

💡 BOF (버퍼 오버플로우, Buffer Overflow) 일상적인 예시BOF(버퍼 오버플로우)는 정해진 공간(버퍼)보다 더 많은 데이터를 넣어서 넘쳐버리는 상황을 의미합니다.쉽게 말하면 컵에 물을 너무 많이 부어서 넘치는 것과 같아요! ☕💦📌 BOF(버퍼 오버플로우) 일상 예시1️⃣ 컵에 물 따르기 예시 ☕300ml짜리 컵이 있음물을 500ml 부으면? 🚨 컵이 넘쳐서 흘러버림→ 정해진 용량(버퍼)보다 더 많은 데이터를 넣어서 문제가 발생하는 상황!2️⃣ 노트 필기 예시 📖공책 한 페이지에 10줄만 적을 수 있음그런데 20줄을 적으면?📢 "글씨가 공책 바깥으로 삐져나옴!" 🚨 (메모리 침범)3️⃣ 엘리베이터 최대 탑승 인원 초과 🚪엘리베이터 최대 정원 10명그런데 15명이 타면? 🚨 ..

Study/System 2025.02.18

OOB(Out of Bounds)

OOB 일상 예시 💡 OOB(Out of Bounds, 범위를 벗어난 접근) 일상 예시OOB(Out of Bound)란 배열(리스트)의 정상적인 범위를 벗어난 위치에 접근하는 것을 의미합니다.쉽게 말하면 없는 번호를 호출하거나, 존재하지 않는 공간에 데이터를 넣는 것과 같아요.📌 일상 속 OOB 예시1️⃣ 엘리베이터 층수 예시 🚪엘리베이터에는 1층 ~ 10층 버튼만 있는데,실수로 "13층"을 누르면? 🚨 → 잘못된 범위 접근 (OOB 오류 발생!)정상적인 층 범위를 벗어나서 오작동하거나 오류가 날 수 있음2️⃣ 편의점 계산대 예시 💳편의점에서 **상품 목록(배열)**이 있음1. 삼각김밥2. 컵라면3. 초코우유하지만 계산할 때 점원이 "5번 초코칩 쿠키"를 입력그런데 실제로 5번 상품이 없으면? ..

Study/System 2025.02.18

pwnbg 명령어 모음

pwndbg는 gdb의 확장 기능으로, 바이너리 익스플로잇을 할 때 매우 유용한 도구입니다. 자주 사용하는 명령어들을 정리해볼게요! 🚀🔥 pwndbg 필수 명령어 모음 🔥1️⃣ 기본 정보 확인명령어 설명checksec바이너리 보안 설정 확인 (RELRO, PIE, NX, Stack Canary 등)file ./prob바이너리 파일의 기본 정보 확인info functions바이너리에 존재하는 함수 목록 출력info proc mappings메모리 매핑 정보 확인 (PIE, heap, stack 위치 등)vmmap가상 메모리 맵 확인 (heap, libc, stack, code 등)2️⃣ 실행 및 디버깅명령어 설명r [args] 또는 run [args]프로그램 실행 (옵션을 붙여 실행 가능)start프로..

Study/Command 2025.02.18

[159] IT 비전공자 [dreamhack] p_rho문제풀기

해설과 함께 이해하며 풀어보았다https://velog.io/@rlajunwon/Dreamhack-prho [Dreamhack] p_rhomain함수감사하게도 win함수가 존재한다간단하게 idx를 입력받고, 다음 반복문때 buf\[idx]의 값을 넣어주는 프로그램이다bof는 안 터질것 같았고, 다른 취약점이 존재할 것 같았다보면 바로 보인다Ouvelog.io 소스코드 분석더보기1. 프로그램 분석이 프로그램은 반복문을 돌면서 숫자를 입력받고, 이를 배열(buf)에 저장하는 구조입니다.idx (인덱스)를 입력받고,buf[idx] = 사용자가 입력한 값;다시 idx = buf[idx];를 통해 idx가 업데이트됩니다.이 과정을 무한히 반복하는 코드예요.2. 버퍼 오버플로우 (BOF)는 터지지 않음버퍼 오버플로..