rtl 5

[시스템 해킹] basic_rop_x64 write-up

https://dreamhack.io/wargame/challenges/29 로그인 | Dreamhack페르소나 굿즈 이벤트 기간 한정 구독 혜택 지금 가입하면 연간 플랜을 최대 75% 할인 된 가격으로!dreamhack.io 0. 보호기법 확인Arch: amd64-64-littleRELRO: Partial RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x400000)1. 소스코드 확인#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, ..

워게임 2026.02.12

[시스템 해킹] basic_exploitation_002 write up

https://dreamhack.io/wargame/challenges/4 로그인 | Dreamhack페르소나 굿즈 이벤트 기간 한정 구독 혜택 지금 가입하면 연간 플랜을 최대 75% 할인 된 가격으로!dreamhack.io0. 보안 기법 확인Arch: i386-32-littleRELRO: Partial RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x8048000)1. 소스코드 확인#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, N..

워게임 2026.02.07

NX-bit를 우회하는 RTL (Return-To-Libc) 공격 기법 (64-bit)

1. RTL(Return-to-libc)이란?RTL은 프로그램에 실행 권한이 없는 스택에서도 원하는 함수를 실행하기 위해, 메모리에 이미 로드된 **공유 라이브러리(libc)**의 함수를 호출하는 기법입니다. 주로 스택에서의 코드 실행을 막는 NX-bit 보호 기법을 우회할 때 사용됩니다.핵심 개념: PLT와 GOTRTL을 이해하려면 함수 호출의 징검다리 역할을 하는 두 테이블을 알아야 합니다. PLT (Procedure Linkage Table): 외부 함수로 점프하기 위한 실제 코드 영역(Trampoline)입니다. GOT (Global Offset Table): 함수의 실제 주소가 저장되는 보관소입니다. 흐름: 함수를 처음 호출하면 라이브러리에서 주소를 찾아 GOT에 기록하고, 이후에는 기록된 주소..

설명 2026.02.07

[시스템 해킹] Return to Library write-up

https://dreamhack.io/wargame/challenges/353 로그인 | Dreamhack페르소나 굿즈 이벤트 기간 한정 구독 혜택 지금 가입하면 연간 플랜을 최대 75% 할인 된 가격으로!dreamhack.io0. 보안기법 확인NX bit와 canary가 켜져 있음을 확인1. 소스코드 확인#include #include const char* binsh = "/bin/sh";int main() { char buf[0x30]; setvbuf(stdin, 0, _IONBF, 0); setvbuf(stdout, 0, _IONBF, 0); // Add system function to plt's entry system("echo 'system@plt'"); // Leak canary ..

워게임 2026.02.06

NX-bit를 우회하는 RTL (Return-To-Libc) 공격 기법 (32-bit)

BOF(Buffer Overflow) 기초를 배우고 나면 보통 쉘코드(Shellcode)를 스택에 올리고 실행하는 공격을 배운다.하지만 현대의 시스템에는 이러한 공격을 막기 위한 보호 기법들이 존재하는데, 그중 NX-bit를 우회하기 위한 핵심 기법이 바로 RTL이다.이번 글에서는 32-bit 아키텍처를 기준으로 RTL의 원리와 공격 방법에 대해 알아보도록 하겠다.1. 왜 RTL이 필요한가?NX-bit (No-eXecution) 보호 기법과거에는 스택(Stack) 영역에 쉘코드를 주입하고, Return Address를 쉘코드의 주소로 덮어씌워 실행시킬 수 있었다. 하지만 NX-bit가 도입되면서 스택 영역에 실행 권한(Execute permission)이 제거되었다.. 즉, 스택에 쉘코드를 아무리 예쁘게..

설명 2026.01.18