이전다음 모바일 해킹 Frida 설치방법 및 서버 설치방법 - 환경구축 더보기 앱 해킹 공부 인시큐어뱅크 앱 취약점 결과 보고서 공부 및 대응방안 수립 더보기 CVE KVE-2024-0794 (산업용 IDS 솔루션 Command Injection) 더보기 최신글 System (Pwnable) PIE 및 RELocation Read-Only(RELRO) 우회방안 PIEPosition-Independent Executable(PIE)은 무작위 주소에 매핑돼도 실행 가능한 실행 파일을 뜻합니다. PIC(Position-Independent Code)공유 오브젝트는 기본적으로 재배치(Relocation)가 가능하도록 설계되어 있습니다.재배치가 가능하다는 것은 메모리의 어느 주소에 적재되어도 코드의 의미가 훼손되지 않음을 의미하는데,컴퓨터 과학에서는 이런 성질을 만족하는 코드를 Position-Independent Code(PIC)라고 부릅니다. pic의 코드는 rip를 기준으로 데이터를 상대 참조(Relative Addressing)하기 때문에 바이너리가 무작위 주소에 매핑돼도 제대로 실행될 수 ASLR을 꺼도 PIE가 적용된 프로세스는 무작위 주소에 매핑되지 않음 .. System (Pwnable) Dreamhack basic_rop_x86 문제 풀이 방향 Dreamhack basic_rop_x86 문제 풀이 방향https://dreamhack.io/wargame/challenges/30 basic_rop_x86Description 이 문제는 서버에서 작동하고 있는 서비스(basic_rop_x86)의 바이너리와 소스 코드가 주어집니다. Return Oriented Programming 공격 기법을 통해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일dreamhack.ioArch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) i386-32 비트이다. 디스어셈블을 해보면, 스.. System (Pwnable) NX 및 ASLR 우회방안 - PLT GOT 설명 NXNX(No-eXecute)- 실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역을 분리- 코드에 쓰기권한 있는 경우 : 임의 코드 입력, Return to Shellcode 등이 가능함- CPU가 NX를 지원해야 함.- NX를 인텔은 XD(eXecute Disable) , AMD는 NX, 윈도우는 DEP(Data Execution Prevention) , ARM에서는 XN(eXecute Never) 라고 칭하고 있습니다. 명칭만 다를 뿐 모두 비슷한 보호 기법입니다. ASLR(Address Space Layout Randomization)- 바이너리가 실행될 때마다 스택, 힙, 공유 lib 등을 임의의 주소에 할당하는 보호기법- 이제 buf의 주소를 구하는 것이 선행되어야 함 Library.. System (Pwnable) 스택 카나리(Stack Canary) 설명 및 카나리 우회방안(Return to Shellcode Writeup) 스택 카나리(Stack Canary) 설명 및 카나리 우회방안(Return to Shellcode Writeup)1.스택 카나리(Stack Canary)- 함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에서 임의의 값을 삽입한다. - 이 값을 함수의 에필로그에서 해당 값의 변조를 확인(fs+0x28값과 현재 값을 XOR) - 카나리의 값은 TLS에 전역변수로 저장된다. 2. TLS의 주소 파악- fs의 값을 알면 TLS의 주소를 알 수 있고, fs의 값은 특정 시스템 콜에서만 조회가 가능 - arch_prctl(ARCH_SET_FS, addr)의 형태로 호출하면 fs의 값은 addr로 설정된다. - gdb 명령어 중 catch 명령어로 arch_prctl이 호출될 때를 잡아서 확인(info regist.. System (Pwnable) cdecl, SYSV 호출 규약 및 버퍼 오버 플로 cdecl, SYSV 호출 규약 및 버퍼 오버 플로cdecl, SYSV 호출 규약 SYSV 인자 전달 순서 : rdi, rsi, rdx, rcx, r8, r9 스택 버퍼 오버 플로버퍼란- 데이터가 목적지로 이동하기 위한 임시 저장.- 데이터 처리 속도가 서로 다른 장지간에 오가는 데이터를 임시로 저장. 스택버퍼: 스택에 있는 지역변수힙버퍼: 힙에 있는 지역변수 버퍼 오버 플로란- char 배열의 길이가 10이면, 10byte가 할당되어 있다. 이때 20byte에 데이터가 들어오는 경우, 오버플로가 발생- 오버된 버퍼들의 값을 조작하면 위험이 발생함 레퍼런스https://learn.dreamhack.io/54https://learn.dreamhack.io/60 System (Pwnable) pwndbg 설치 및 기본분석 pwndbg 설치 및 기본분석1. pwndbg 설치https://github.com/pwndbg/pwndbg GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB & LLDB Made EasyExploit Development and Reverse Engineering with GDB & LLDB Made Easy - pwndbg/pwndbggithub.com git clone https://github.com/pwndbg/pwndbgcd pwndbg./setup.sh 간단한 C 프로그램을 만들고, 컴파일한다.gcc -o sum sum1.c -no-pie 1 #include 2 3 int main(void){ ..