분류 전체보기
-
연계정보(CI : Connecting Information)목차 연계정보(CI)란? 사용 예시장점마무리 연계정보(CI)란? 먼저, 연계정보(Connecting Information, CI)*는 주민등록번호를 일방향 암호화한 88바이트 식별자입니다. 복호화가 불가능하며, 동일인 식별은 가능하되, 개인정보 유출 위험은 현저히 낮습니다. 연계정보를 사용하는 이유?1. 법적으로 주민등록번호 수집/이용이 제한됨.2. 비대면 서비스 증가 → 안전한 식별 수단 필요.3. 연계정보는 이런 환경에서 최적화된 안전한 대체 수단으로 볼 수 있음. 법적근거정보통신망법 제 23조의 5 ~ 6항더보기1. 정보통신망법 제23조의5 (연계정보의 생성·처리 등)제1항: 본인확인기관은 다음과 같은 경우에 한해 주민등록번호를 비가역..
연계정보(CI : Connecting Information)연계정보(CI : Connecting Information)목차 연계정보(CI)란? 사용 예시장점마무리 연계정보(CI)란? 먼저, 연계정보(Connecting Information, CI)*는 주민등록번호를 일방향 암호화한 88바이트 식별자입니다. 복호화가 불가능하며, 동일인 식별은 가능하되, 개인정보 유출 위험은 현저히 낮습니다. 연계정보를 사용하는 이유?1. 법적으로 주민등록번호 수집/이용이 제한됨.2. 비대면 서비스 증가 → 안전한 식별 수단 필요.3. 연계정보는 이런 환경에서 최적화된 안전한 대체 수단으로 볼 수 있음. 법적근거정보통신망법 제 23조의 5 ~ 6항더보기1. 정보통신망법 제23조의5 (연계정보의 생성·처리 등)제1항: 본인확인기관은 다음과 같은 경우에 한해 주민등록번호를 비가역..
2025.06.30 -
1. verify method 분석 - check.check_code에 어떤 값이 들어가는지 확인하는 함수 public void verify(View view) { String obj = ((EditText) findViewById(owasp.mstg.uncrackable3.R.id.edit_text)).getText().toString(); AlertDialog create = new AlertDialog.Builder(this).create(); if (this.check.check_code(obj)) { create.setTitle("Success!"); create.setMessage("This is the co..
OWASP - MASTG UnCrackable-LEVEL 3 (2)1. verify method 분석 - check.check_code에 어떤 값이 들어가는지 확인하는 함수 public void verify(View view) { String obj = ((EditText) findViewById(owasp.mstg.uncrackable3.R.id.edit_text)).getText().toString(); AlertDialog create = new AlertDialog.Builder(this).create(); if (this.check.check_code(obj)) { create.setTitle("Success!"); create.setMessage("This is the co..
2025.05.31 -
[Mobile] QuarkEngine 툴 소개 및 사용법목차소개 배경사용법활용방안소개배경 이번 QuarkEngine즉 Quark Agent를 소개하게된 계기는 이번 캡스톤 디자인을 설계할때, Quark Agent를 활용한 서비스를 개발하였습니다. 하지만 이번 공부 과정에서 QuarkEngine을 소개하는 글이 많이 없다는 생각을해, 이번달 블로그 주제로 선정하였습니다. QuarkEngine은 쉽게 설명하면 취약점 진단 툴이라고 생각하면 될거 같습니다. apk파일을 업로드를 진행하면, 위사진과 같이yara룰을 기반으로된 룰들에 맞게 취약점을 진단해주는 앱입니다.이는 실행결과입니다.사용법 먼저 quarkEngine에서 제공하는 yara룰 기반 json파일들이 있습니다. json파일을 스캔을 진행할python..
[Mobile] QuarkEngine 툴 소개 및 사용법[Mobile] QuarkEngine 툴 소개 및 사용법목차소개 배경사용법활용방안소개배경 이번 QuarkEngine즉 Quark Agent를 소개하게된 계기는 이번 캡스톤 디자인을 설계할때, Quark Agent를 활용한 서비스를 개발하였습니다. 하지만 이번 공부 과정에서 QuarkEngine을 소개하는 글이 많이 없다는 생각을해, 이번달 블로그 주제로 선정하였습니다. QuarkEngine은 쉽게 설명하면 취약점 진단 툴이라고 생각하면 될거 같습니다. apk파일을 업로드를 진행하면, 위사진과 같이yara룰을 기반으로된 룰들에 맞게 취약점을 진단해주는 앱입니다.이는 실행결과입니다.사용법 먼저 quarkEngine에서 제공하는 yara룰 기반 json파일들이 있습니다. json파일을 스캔을 진행할python..
2025.05.31 -
1. 목표스택을 이용한 함수를 직접 구현하고, 해당 함수 내에서 프롤로그(Prologue)와 에필로그(Epilogue)가 디컴파일 없이 어떤 방식으로 수행되는지 파악하기!각 인스트럭션이 수행하는 동작과 의미를 기록하기RSP와 RBP 레지스터의 움직임을 중점으로, 어떤 인스트럭션이 사용되는지와 어떤 단계를 거치는지 정리하기! 2. 분석2.1 코드 분석 및 사전 지식코드 분석 및 변수 확인을 위해 GCC 컴파일 시 `-g` 옵션을 추가하여 디버깅 정보를 삽입함// gcc -g -o add_func add_func.c#include int add_func(int a, int b) { int c = a + b; return c;}int main() { int add_result = add_fun..
함수 프롤로그/에필로그 분석1. 목표스택을 이용한 함수를 직접 구현하고, 해당 함수 내에서 프롤로그(Prologue)와 에필로그(Epilogue)가 디컴파일 없이 어떤 방식으로 수행되는지 파악하기!각 인스트럭션이 수행하는 동작과 의미를 기록하기RSP와 RBP 레지스터의 움직임을 중점으로, 어떤 인스트럭션이 사용되는지와 어떤 단계를 거치는지 정리하기! 2. 분석2.1 코드 분석 및 사전 지식코드 분석 및 변수 확인을 위해 GCC 컴파일 시 `-g` 옵션을 추가하여 디버깅 정보를 삽입함// gcc -g -o add_func add_func.c#include int add_func(int a, int b) { int c = a + b; return c;}int main() { int add_result = add_fun..
2025.05.31 -
[HackTheBox] APKey목차문제 설명어플리케이션 실행분석해결과정문제 설명 이번에 풀어볼 문제는 HackTheBox에 모바일 챌린지의 문제인 APKey를 풀어볼려고 합니다.어플리케이션 실행(동적 분석)단순하게 로그인하는 문제이기에 ID : admin, PW : admin을 입력해 보았습니다. 오류 메시지로 "Wrong Caredentials!"라는 toast 알림이 뜨는 것을 확인할 수 있었습니다! 아이디 비밀번호를 확인할 수 없기에 추가로 얻을 수 있는 정보는 없기에 정적분석으로 이어서 진행하겠습니다. 분석(정적 분석)jadx를 통해서 어플리케이션을 디컴파일을 진행합니다. 디컴파일된 Java 코드에서 오류 메시지를 검석하였을때,onClick 함수에서 하드코딩된 MD5로 암호화된 비밀번호값을 ..
[HackTheBox] APKey[HackTheBox] APKey목차문제 설명어플리케이션 실행분석해결과정문제 설명 이번에 풀어볼 문제는 HackTheBox에 모바일 챌린지의 문제인 APKey를 풀어볼려고 합니다.어플리케이션 실행(동적 분석)단순하게 로그인하는 문제이기에 ID : admin, PW : admin을 입력해 보았습니다. 오류 메시지로 "Wrong Caredentials!"라는 toast 알림이 뜨는 것을 확인할 수 있었습니다! 아이디 비밀번호를 확인할 수 없기에 추가로 얻을 수 있는 정보는 없기에 정적분석으로 이어서 진행하겠습니다. 분석(정적 분석)jadx를 통해서 어플리케이션을 디컴파일을 진행합니다. 디컴파일된 Java 코드에서 오류 메시지를 검석하였을때,onClick 함수에서 하드코딩된 MD5로 암호화된 비밀번호값을 ..
2025.04.30 -
1. 목표주어진 두 개의 문제 파일을 컴파일하여 실행 파일을 만든 후, 각각의 스택 구조를 그려보고 `you win!` 문자열을 출력하기! 2. 문제 1번문제 1번 prob1.cgcc -o prob1 prob1.c -fno-stack-protector-fno-stack-protector 옵션GCC 컴파일 옵션으로 스택 보호(Stack Smashing Protector) 기능을 비활성화함// gcc -o prob1 prob1.c -fno-stack-protector#include int main(void) { int a; int b; int c[10]; printf("Idx: "); scanf("%d", &b); b = (b ^ 1); b = (b 2.1...
스택 구조 그리기1. 목표주어진 두 개의 문제 파일을 컴파일하여 실행 파일을 만든 후, 각각의 스택 구조를 그려보고 `you win!` 문자열을 출력하기! 2. 문제 1번문제 1번 prob1.cgcc -o prob1 prob1.c -fno-stack-protector-fno-stack-protector 옵션GCC 컴파일 옵션으로 스택 보호(Stack Smashing Protector) 기능을 비활성화함// gcc -o prob1 prob1.c -fno-stack-protector#include int main(void) { int a; int b; int c[10]; printf("Idx: "); scanf("%d", &b); b = (b ^ 1); b = (b 2.1...
2025.04.30