전체 글

· 협업/git
Git Workflow 팀에서 git을 사용해 개발할 때 브랜치를 어떻게 사용할지에 대한 전략 혹은 규칙. Git flow 5개의 브랜치로 관리하고 메인 브랜치인 master, develop, 보조 브랜치인 feature, release, hotfix가 있다. - master : 배포용으로 사용하는 브랜치 - develop : 개발용 default 브랜치, 실제 작동중인 것 다음 버전을 개발하는 브랜치 - feature : 기능 개발 브랜치, 실제로 개발할 때 가장 많이 사용하는 것으로 기능별 브랜치를 생성하고 개발이 완료되면 develop에 병합함. - release : 다음 배포를 위해 기능에 문제가 없는지 확인하는 용도의 브랜치 - hotfix : 배포 후 버그가 발생한 경우 수정하는 브랜치 간단한..
Merge Sort Merge Sort는 하나의 리스트를 부분 리스트로 점차 분할하여 각 부분 리스트를 정렬한 다음 다시 부분 리스트를 합병해 정렬하는 방법이다. 반복적으로 구현하는 방법이 있지만 결론적으로 재귀적인 방법이 효율적이기에 재귀적인 Merge Sort를 소개할 것이다.  // 정렬할 리스트를 분할해 2개의 부분 리스트 생성int rmergeSort(element a[], int link[], int left, int right) { if (left >= right) return left; int mid = (left + right) / 2; return listMerge(a, link, rmergeSort(a, link, left, mid), rmergeSort(a, li..
Stable Sorting vs Unstable Sorting Stable Sorting은 같은 두 수를 정렬할 때 그 수의 순서가 바뀌지 않고 유지되며 정렬되는 것이다. 반대로 Unstable Sorting은 같은 두 수를 정렬할 때 그 수의 순서가 서로 바뀌면서 정렬되는 것이다. Insertion Sort 삽입 정렬은 정렬된 배열에 한 숫자씩 삽입해 정렬하는 것이다. 정렬된 배열의 뒷부분부터 비교하며, 삽입하려는 수보다 큰 경우에만 인덱스를 줄여 비교한다. 따라서 같은 수인 경우에는 다음 인덱스에 정렬되기 때문에 Stable Sorting이다. void insert(element e, element a[], int i) { a[0] = e; while(e.key < a[i].key) { a[i+1] ..
1. 개요 1.1 취약점 요약 Tenda Router의 일부 제품에 deviceId 변수로 인한 스택 버퍼 오버플로우가 발생한 취약점이다. 1.2 취약점 개요 취약점 이름 Tenda Router Vulnerability on formSetDeviceName function(CVE-2023-38934) 최초 발표일 2023.08.07 CVSS 3.0 9.8 위험 등급 높음 현재 상태 - 취약점 영향 스택 버퍼 오버플로우 벤더 - 1.3 대상 제품 F1203 V2.0.1.6 FH1203 V2.0.1.6 FH1205 V2.0.0.7(775) 2. 분석 2.1 공격 분석 및 기본 개념 formSetDeviceName.c 함수에서 발생한 스택 버퍼 오버플로우는 공격자가 deviceId를 무작위로 설정해 DoS 혹..
1. 개요 1.1 취약점 요약 mp3 오디오 컨버터 애플리케이션은 오디오 파일을 mp3 포맷으로 변환하는 소프트웨어 애플리케이션이다. 프로그램이 버퍼의 할당된 메모리 공간을 초과해 데이터를 쓸 때 버퍼오버플로우가 발생한다. 이로 인해 메모리가 손상된다. 1.2 취약점 개요 취약점 이름 Buffer-overflow in mp3_audio_converter(CVE-2023–37734) 최초 발표일 2023.08.10 CVSS 3.0 - 위험 등급 - 현재 상태 - 취약점 영향 버퍼 오버플로 벤더 - 2. 분석 2.1 공격 기법 및 기본 개념 2.1.1 취약점 메커니즘 mp3 오디오 컨버터에서 발생한 취약점은 사용자의 입력을 받는 동안 범위를 적절히 확인하지 않아 발생한다. 공격자가 버퍼의 크기 제한을 초과한..
* 오역 가능성이 있습니다. 1. 개요 1.1 취약점 요약 CVE-2017-17969는 Zip Shrink에서 발생한 heap buffer overflow이다. Shrink는 Lempel-Ziv-Welch(LZW) 압축 알고리즘을 구현한 것이다. 이는 1993년에 출시된 2.0 버전 이전의 PKZIP에서 사용되었다. Shrink는 9bit에서 13bit사이의 크기를 가지는 동적 코드 LZW이고 부분적으로 Dictionary를 지울 수 있는 기능을 한다. 7-Zip v.16.04에서 발생한 취약점으로 버퍼 오버플로우가 발생해 ZIP 압축을 처리할 때 공격자가 parent 노드를 지울 수 있고 서비스 거부 공격 또는 임의코드를 실행할 수 있다. 1.2 취약점 개요 취약점 이름 ZIP Shrink Heap B..
리눅스 커널의 원격 Stack Buffer Overflow 취약점 유형 Out-of-Bounds write CWE-787 분석 TIPC 모듈의 모니터링 프레임워크에서 원격으로 Stack Buffer Overflow를 트리거할 수 있는 취약점이다. TIPC의 모니터링 프레임워크는 동일한 인접 노드를 모니터링하기 위해 아래와 같은 구조체를 사용한다. struct tipc_peer { u32 addr; struct tipc_mon_domain *domain; struct hlist_node hash; struct list_head list; u8 applied; u8 down_cnt; bool is_up; bool is_head; bool is_local; }; #define MAX_MON_DOMAIN 64 ..
GattLib 0.2의 Stack Buffer Overflow 유형 Stack-Based Buffer Overflow CWE-121 Exploit-db https://www.exploit-db.com/exploits/46215 GattLib 0.2 - Stack Buffer Overflow GattLib 0.2 - Stack Buffer Overflow EDB-ID: 46215 CVE: 2019-6498 Date: 2019-01-21 www.exploit-db.com 분석 // gattlib.c // Transform string from 'DA:94:40:95:E0:87' to 'dev_DA_94_40_95_E0_87' strncpy(device_address_str, dst, sizeof(device..
Zoom Linux Client 2.0.106600.0904 - Stack-Based Buffer Overflow 유형 Stack-Based buffer Overflow CWE-121 Exploit-DB https://www.exploit-db.com/exploits/43355 Zoom Linux Client 2.0.106600.0904 - Stack-Based Buffer Overflow (PoC) Zoom Linux Client 2.0.106600.0904 - Stack-Based Buffer Overflow (PoC) EDB-ID: 43355 CVE: 2017-15048 Date: 2017-12-18 www.exploit-db.com 분석 gef> checksec [+] checksec for '/..
· 보안
스택 버퍼 오버플로우를 이해하려면 버퍼 오버플로우에 대한 이해와 메모리 구조에 대한 이해가 필요하다.그래서 메모리 구조와 버퍼 오버플로우에 대해 먼저 공부한 후 스택 버퍼 오버플로우를 공부해볼 것이다.  메모리 구조  코드 영역(Text)프로그램을 실행시키기 위해 구성되는 것들이 저장되는 영역. 명령문, 제어문, 함수, 상수 등이 저장되는 영역이다.  데이터 영역(Data)전역변수, 정적변수 등이 저장되는 영역. 초기화된 변수 영역(Initialized data segment)와 초기화되지 않은 변수 영역(Uninitialized data segment)로 나뉨.  힙 영역(Heap)사용자에 의해 관리되는 영역으로 동적으로 할당된 변수들이 저장됨. 낮은 주소에서 높은 주소로 할당됨.  스택 영역(Stac..
소-은
남소금