728x90

System Hacking 36

Fortify

어떤 프로그램 리눅스에서 소스를 빌드를 하다가 흔히 만나는 오류 중 하나가 있다.undefined reference to `__memset_chk'bof 와 같은 메모리 관련 취약점을 막기 위해 gcc 같은 컴파일러에서 제공하는 보호기법소스코드에서 잠재적인 취약점을 탐지하고 런타임에 추가 검사를 통해 보안 향상을 한다.bof가 감지되면 프로그램을 종료한다. Fortify의 동작 방식은 buffer overflow가 발생할 때 감지할 수 있는 특정 C 라이브러리 함수의 향상된 버전을 제공하는 방식으로 작동한다. strcpy, memcpy, sprintf, memset, fprintf 등의 함수를 사용하면 컴파일 과정에서 __strcpy_chk, _-memcpy_chk로 변경한다.취약한 함수가 호출되면 fo..

fuzzing101 Exercise 1

Xpdf PDF 뷰어를 퍼징하고 cve-2019-13288 에 대한 크래시와 POC을 찾는 것이 목표입니다. CVE-2019-13288xpdf 4.01.01에서 parser.cc의 parset::getObj() 함수가 조작된 파일을 통해서 무한 재귀를 유발한다고 합니다.https://nvd.nist.gov/vuln/detail/CVE-2019-13288딱 봐도 스택 오버플로우 같습니다. 이 문제를 해결하게 되면 배우는 것이- 계측을 통한 대상 애플리케이션 컴파일- 퍼저(afl-fuzz) 실행- 디버거를 사용해 충돌 분류 환경Ubuntu 20.04.02 LTS에서 테스트 되었고, 퍼징 결과의 차이를 피하기 위해 동일한 OS 버전을 추천합니다. xpdf 3.0.2 다운wget https://dl.xpdfre..

CodeQL

이론적인 부분은 구글에서 공부하면 될것같습니다(여러 자료들을 찾아보아도, 잘 안되길래 삽질을 통해서 아래와 같은 방식으로 했다.) CodeQLCodeQL은 Variant Analysis를 수행하는 정적 분석 도구이다.Variant Analysis : 알려진 취약점을 기준 삼아서 비슷한 유형의 취약점을 찾아내는 분석 방법이다.https://github.com/github/codeql/tree/main장점 : 패턴을 모델링하고 코드베이스에서 해당 패턴이 발생하는 부분을 빠르게 스캔할 수 있다는 것이다. 동작 방식CodeQL이 내부적 동작하는 과정대상 code를 데이터화하여 CodeQL Database를 생성CodeQL Database를 대상으로 CodeQL 쿼리로 질의쿼리 결과 분석 CodeQL Path 추..

VirtualProtect

4개의 인자를 가지고, 특정 메모리 영역의 실행 권한을 변경해주는 함수이다.BOOL WINAPI VirtualProtect ( _In_ LPVOID lpaddress, # 권한을 변경할 메모리 영역의 시작 주소 _In _SIZE_T dwSize, # 변경할 크기 _In_ flNewProtect, # 변경할 속성 값 _Out_ PDWORD lpflOldProtect, # 이전 값 저장 (쓰기 가능한 영역)); 간단한 예제 코드#include #include int main() { DWORD old; unsigned char code[] = { 1, 2, 3, 4 }; VirtualProtect(code, sizeof(code), PAGE_EXECUTE_READWRITE, &old); pri..

VirtualAlloc

DEP(Data Execution Prevention)실행 권한이 없는 메모리 영역에 있는 코드가 실해오디지 못하도록 방지하는 기법—> DEP가 적용되기 시작하면서 스택 혹은 힙 영역에 쉘코드를 입력한 뒤 해당 쉘코드를 실행하도록 못하게 되었다. DEP에는 H/W 기반 DEP와 S/W 기반 DEP가 존재한다.하드웨어 DEP : 메모리에 명시적으로 실행 코드가 포함되어 있는 경우를 제외하고 프로세스의 모든 메모리 위치에서 실행할 수 없도록 표시한다.-> 대부분의 최신 프로세서는 하드웨어 적용 DEP를 지원한다.소프트웨어 DEP : CPU가 하드웨어 DEP를 지원하지 않을 경우 사용한다. 그러면, 공격자가 Heap, Stack 영역에 shellcode를 저장하고, shellcode를 실행하기 위해서는 해당 ..

CVE-2025-6218 을 발견한 방법

화이트햇 스쿨 3기 프로젝트 하면서 winrar 취약점을 발견하게 되어서 어떻게 찾게 되었고, 분석은 어떻게 했는지에 대한 글입니다.제 글이 이 글을 읽는 여러분에게도 도움이 되었으면 좋겠습니다. 취약점을 발견한 방법A 프로그램에서 path traversal 우회 했던 방법을 가지고, 압축 프로그램 테스트를 하다가 운이 좋게 발견을 했습니다.(그때 새벽이 였는데, 10시간 투자해서 명예와 돈을 가지게 되었네요. 심지어 다른 압축 프로그램에서 되는 것도 있고)그래서, A 프로그램에서 취약점을 발견한 방법이 곧 취약점을 발견한 방법이 되겠습니다A 프로그램에서는 .. 만 필터링 하고, ..(공백)을 넣으면 우회를 할 수 있지 않을까? 하는 단순한 생각으로 접근을 했습니다.하지만 A 프로그램은 압축 프로그램..

System Hacking/cve 2025.08.07
728x90