앞으로 Pwnable 공격 기법에 필요한 개념과 공격 기법을 차근차근 정리해보려고 한다...❗ Stack Buffer overflow를 살펴보기 전, 알아야할 Memory Layout과 함수 호출 규약(Calling Convention)에 대해 먼저 정리해보려고 한다
오늘은 mainarena의 symbol을 못찾을 때, 어떤 식으로 검색해야하는지 찾아보다가 한 블로그에서 mallochook의 symbol을 통해 찾는 것을 보고 메모로 적어보려한다. 이걸 왜 찾아보게 되었냐면, 일반적으로 system 함수나 다른 함수들의 offse
오늘은 Memo용으로 바이너리 파일의 Symbol을 제거하는 방법을 적어보려한다. 컴파일 시, 특정 옵션만 준다면 디컴파일했을 때 Symbol들이 제거되어 분석하기 어렵다! ✔ Sample Code 간단한 코드를 하나 작성해봤다. coco.c ✔ Compile
이번에는 두 번째로 프롤로그 및 에필로그와 함수 호출 규약에 대해서 알아보고자 한다.우선, 간단하게 함수 호출 규약부터 살펴보자. 64bit기준으로 살펴볼 것이다! 또한 들어가기에 앞서, x64dbg를 통해 분석할 예정이니, x64dbg 설치 사이트 링크도 아래에 달아
오늘은 항상 까먹는... 라이브러리 파일안에 있는 함수의 offset을 찾는 방법을 적어보려한다.EFL 파일의 각종 정보를 보기 위한 명령이다.readelf 명령어는 objdump와 같은 파일에 대한 다양한 정보를 표시하는 명령어이다.이 중 -s 옵션으로 offset
오늘은 Pwnable에 One_gadget에 관한 내용을 작성하고자 한다.One_gadget은 하나의 가젯으로 Shell을 딸 수 있는 가젯이다.One_gadget의 Github 주소는 아래에 적어두겠다.👉 https://github.com/david942j
리버스 엔지니어링은 하드웨어나 소프트웨어를 분석하여 구성이나 기능을 밝혀내는 기술 디스어셈블(disassemble) : Hex Code ➡ 어셈블리 언어 등의 저수준 언어로 변환 디컴파일(decompile) : Hex Code ➡ c언어와 같은 고수준 언어로 변환
오늘은 Unsafe Unlink에 대해 이해해보려고 한다...! > Unsafe unlink 취약점은 Fake Chunk를 활용하여 다른 인접한 Chunk와 병합이 일어날 때 발생하는 취약점으로, 이를 통해 원하는 주소에 값을 쓰거나, 출력할 수 있다. Unsaf
오늘도 마찬가지로 Ghidra 환경설정에 관해 적어보려한다...스크립트를 로드하기에 앞서, 프로젝트를 하나 생성해준다! 프로젝트를 생성하면 아래와 같이, CodeBrowser라는 창이 하나 뜬다. 해당 창에서 Window ➡ Script Manager 클릭. Scrip
Ghidra를 본격적으로 공부하기에 앞서, 설치부터 해보자...✔ Ghidra 공식 홈페이지 주소 : https://ghidra-sre.org/✔ Ghidra Github 주소 : https://github.com/NationalSecurityAgen
SSH로 IOS 단말기로 접속하여, IOS의 IP를 확인하려고 ifconfig를 쳤는데, commnad not found라는 문구가 출력되었다...간단하게 Cydia에서 패키지를 설치해주자!☝Cydia에 접속하여, Network Commands 패키지를 클릭. 설치
오늘은 메모용으로 오류를 어떻게 해결했는지 적으려고 한다! pwndbg를 설치하다가 위와 같은 오류가 발생했다...fatal: Not a git repository (or any of the parent directories): .git다음과 같은 경우에 오류가 발생한
House of botcake 오늘은 House of botcake에 대해 알아볼 예정이다.. > House of botcake는 tcache에서 double free bug를 막기 위해 추가된 e->key를 건드리지 않고도, DFB를 유발시킬 수 있는 취약점이다.
오늘은 Pwnable.kr의 lotto 문제를 풀어보려한다🔥 바로 SSH로 접속하여, 바이너리를 실행했다! ? 뭐지.. input password가 뒤늦게 출력된다. 바로 C코드부터 살펴보자. c코드는 위와 같이 짧다. 우선 main함수부터 살펴보자. mai
오늘은 Memo용으로 Pwntools 설치 방법을 적어두려한다... > Pwntools는 CTF Framework이자, Exploit을 쉽게 작성할 수 있도록 도와주는 라이브러리이다. 설치방법은 Gihub 홈페이지에서 제공한다. 아래와 같다! Installati
오늘은 cmd1에 이어, cmd2의 풀이를 적어보려한다.생각보다 쉽지 않았다...우선 마찬가지로 ssh를 통해 문제 서버에 접속해보자! 접속해보면, 위와 같이 cmd2 바이너리와 flag 파일을 확인할 수 있다. 또한 ./cmd2만 실행시킬 경우 Segmentation
Python으로 Brute Forcing이나 BlindSQLi 스크립트를 작성할 때, string 라이브러리를 이용하는 방법이다..기존에는 ASCII 코드에서 문자와 숫자의 범위인 48부터 126까지의 10진수 값을 chr로 바꿔서 넣었었다..하지만 python의 st
오늘은... 다른 버전의 glibc를 설치하다가 발생한 오류를 작성해보려한다..fastbin_dup을 찾아보다가, 현재 설치되어있는 Ubuntu 18.04에서 테스트를 해보고 싶었다.그러나, glibc-2.26이상부터는 tcachebins가 먼저 사용되어, fastbi
Pwnable.kr input 문제 풀이 이번에는 input이라는 문제를 풀어보려한다. 어려웠었다..😂 특히 fd부분.. fd의 2가 표준 에러인지 알고 있었지만 stderr에 문제에서 요구하는 Hex값을 어떻게 넣어줘야할지 생각나지 않았다.... 접속 후 i