[Pwnable] Return to Library
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/353 Return to LibraryDescription Exploit Tech: Return to Library에서 실습하는 문제입니다.dreamhack.io Environment Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000)NX enabled : stack, heap 등에 실행 권한이 없음 ASLR 적용됨PIE 없음 Code Analysis// Name: rtl.c// Compile: gcc -o rtl rtl.c -fno-..
[Pwnable] Return to Shellcode
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/352/ Return to ShellcodeDescription Exploit Tech: Return to Shellcode에서 실습하는 문제입니다.dreamhack.ioEnvironment Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX unknown - GNU_STACK missing PIE: PIE enabled Stack: Executable RWX: Has RWX segmentsRELRO, Canary를 확인할 수 있음또한, stack이 현재 executab..
[Reversing] patch
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/49/ patchflag를 그리는 루틴을 분석하고 가려진 flag를 보이게 해주세요. Reference GDI+ - Win32 apps | Microsoft Docs Graphics Functions - Win32 apps | Microsoft Docs File — x64dbg documentationdreamhack.io플래그에 현재 선을 긋는 코드가 추가되어 있는 것으로 추정됨Static Analysisint __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ HCURSOR CursorW; // rax..
[Cryptography] Textbook-CBC
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/175 Textbook-CBCDescription 드림이가 AES 플래그 서버를 운영하고 있어요. 무엇이든 암호화하고 복호화 할 수 있다던데... 플래그를 획득해주세요! References https://dreamhack.io/lecture/courses/74dreamhack.io Code Analysisfrom Crypto.Util.Padding import pad, unpadfrom random import choices, randintfrom Crypto.Cipher import AESBLOCK_SIZE = 16flag = open("flag", "rb").read()key = bytes(randint(0, 255) f..
[Reversing] Reversing Basic Challenge #1
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/15 rev-basic-1Reversing Basic Challenge #1 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출dreamhack.io #0과 문제 자체는 같은데, 약간 다른 방식으로 풀어봤다처음 봤을 때 잘못건들여서 main을 못 찾아서, 아예 Correct를 중심으로 찾아봄 Reversing* Correct와 같은 문자열들은 어셈블리로 변환된다고 해서 바뀌지 않기 때문에 Sequence of Byte(Alt+B)로 검색해서 찾음Correct를 볼 수 있다crtl + x로 이를 ..
[Reversing] Reversing Basic Challenge #0
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/14 rev-basic-0Reversing Basic Challenge #0 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출dreamhack.io Code Analysis입력해서 correct가 뜨는 문자열을 찾으면 된다ReversingIDA로 메인 함수를 보면int __fastcall main(int argc, const char **argv, const char **envp){ char v4[256]; // [rsp+20h] [rbp-118h] BYREF memset(v4, 0, si..
[Pwnable] bof
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/1111 bofDescription Buffer overflow is one of the basics of pwnable 🐱 The path of the flag file is /home/bof/flag.dreamhack.io  문제 파일을 받으면이렇게 파일이 존재한다.딱히 소스코드가 없기 때문에 디버거로 분석해야할 것으로 보임 실행파일이 bof일 것으로 추정되기 때문에, 리눅스에서 실행 권한 변경해서 bof를 실행해줬다.실행 파일 찾기도커 파일을 열어보면 해당 빌드 정보가 들어가 있다.FROM ubuntu:22.04@sha256:2b7412e6465c3c7fc5bb21d3e6f1917c167358449fecac8176c6..
[Pwnable] basic_exploitation_001
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/3 basic_exploitation_001Description 이 문제는 서버에서 작동하고 있는 서비스(basic_exploitation_001)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 "flag" 파일을 읽으세요. "flag" 파일의 내용dreamhack.io Environment32비트 바이너리 파일리틀 엔디안stack canary 없음 - buffer overflow 공격 가능NX bit 사용no pie - 주소값 고정Code Analysis#include #include #include #include void alarm_handler() { puts("TIME OUT"); ..
[Cryptography] Textbook-RSA
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/131 Textbook-RSADescription 드림이가 비밀 플래그를 가지고 있는 RSA 서버를 운영하고 있습니다. 서버를 공격해 플래그를 탈취해주세요! 플래그 형식은 DH{...} 입니다. References https://dreamhack.io/lecture/courses/76dreamhack.ioCode AnalysisRSA : RSA 암호화 및 복호화 처리class RSA(object): def __init__(self): self.p = getStrongPrime(512) self.q = getStrongPrime(512) self.N = self.p * self.q ..
[Cryptography] Textbook-DH
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/120 Textbook-DHDescription Alice와 Bob의 통신을 중간자 드림이가 엿보고 있습니다. 둘의 키교환 과정을 공격해 플래그를 획득해주세요 ! 플래그 형식은 DH{...} 입니다. References https://dreamhack.io/lecture/courses/75dreamhack.ioCode Analysis라이브러리from Crypto.Util.number import getPrime #소수 반환from Crypto.Util.Padding import pad, unpad #패딩from Crypto.Cipher import AES # AESimport hashlib #해시 함수 제공import ran..