목록I.sly()/9기 기초 - 공통 (11)
또 뭐하지
1. 암호암호 기본 개념평문 Plaintext : 암호화되지 않은 메시지암호문 Cypertext : 암호화된 메시지 암호화 Encryption : 평문을 암호문으로 만드는 것복호화 Decryption : 암호문으로부터 평문을 복원하는 것키 Key : 평문/암호문을 암호화/복호화시키는 암호 알고리즘에 필요한 핵심 가변정보 값모듈러 연산 : 어떤 숫자를 다른 숫자로 나눈 나머지를 구하는 연산 ex) a ≡ b (mod n) : a와 b는 n으로 나눈 나머지가 같다합동 : 어떤 숫자를 다른 숫자로 나눈 나머지가 같은 경우, 이를 합동이라고 함인코딩 : 데이터를 코드화하고 압축하는 등 다른 형태로 변환하는 것인코딩은 암호화와 달리 데이터의 기밀성을 고려하지 않고 누구나 디코딩하여 원문을 구할 수 있다. 파일의 ..
문제 코드를 살펴보면 scanf("%s",A)에서 입력된 문자열을 변수 'A'에 저장하는데, 이때 길이에 대한 제한이 없다. 따라서 지정된 문자열 길이인 8을 넘기게 되면 변수 'B'의 메모리 영역에 덮어써지게 된다. 이제 어셈블리 코드를 살펴보자. : endbr64 // int main() : push rbp : mov rbp,rsp : sub rsp,0x20 //canary 저장 : mov rax,QWORD PTR fs:0x28 : mov QWORD PTR [rbp-0x8],rax // eax 0으로 초기화 : xor eax,eax // 지역 변수 'A' 초기화, 입력을 받아 'A'에 저장 ..
1. PwnablePwnable(시스템 해킹)운영체제 또는 프로그램 취약점을 찾아 공격하고, 관리자의 권한 등을 얻어 시스템을 장악하거나 의도치 않은 행동을 하게 하는 것컴퓨터 프로그램의 행위를 조작하여 공격자가 원하는 행동을 실행하도록 하는 공격궁극적으로 관리자 권한 탈취가 공격의 목표취약점 종류Memory Corruption : Buffer Overflow, Out-Of-Boundary, Off-by-one, Format String Bug, Double Free/User-After-FreeLogical Bug : Command Injection, Race Condition, Path Traversal(경로 탐색)해킹 과정취약점 발견 -> 공격 시나리오 작성 -> 필요 정보 수집 및 공격 -> 권한 ..
int_reversingpwndbgpwndbg를 실행하고 info func명령을 통해서 함수 목록을 확인했다.disassemble main 명령을 통해서 main 함수의 어셈블리 코드를 확인했다.코드를 살펴보면cmp DWORD PTR [rbp-0xc],eax : eax 값과 rbp-0xc 값을 비교합니다.mov eax, 0x0, call 0x10b0 : 해당 부분에서 scanf 함수를 호출하고 eax가 인자로 사용된 것을 보아 우리가 찾는 값이 rbp-0xc 에 저장되어 있는 것을 알 수 있다. mov QWORD PTR [rbp-0xc], 0x146 : 이 부분에서 우리가 찾는 값이 0x146인 것을 확인할 수 있다. 0x146은 10진수로 326이다. IDAIDA에서 int_reversing 파일을 ..
1. ReversingReversing : 물건이나 기계장치 혹은 시스템 등의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 작업정적 분석 방법 (Static Analysis) : 파일을 실행하지 않고 겉모습을 관찰하여 분석하는 방법동적 분석 방법 (Dynamic Analysis) : 파일을 직접 실행시켜 분석하고 디버깅 통해 코드 흐름과 메모리 상태 등을 자세히 살펴보는 방법2. ASCIIASCII : 미국 국립 표준 협회(ANSI)에서 표준화한 정보교환용 7비트 부호체계파이썬 아스키코드 변환ord() : 문자 -> 아스키코드 값chr() : 아스키코드 값 -> 문자3. Byte Order엔디안 (Endianness) : 1차원 공간에 여러 개의 연속된..
1. OWASP TOP 10 OWASP TOP 10 : OWASP에서 발표하는 가장 중요한 웹 애플리케이션 보안 위협 목록 OWASP TOP 10 (2024) 부적절한 자격 증명 사용(Improper Credential Usage) 불충분한 공급망 보안(Inadequate Supply Chain Security) 보안에 취약한 인증 및 권한 부여(Insecure Authentication/Authorization) 부족한 입력/출력 검증(Insufficient Input/Output Validation) 안전하지 않은 통신(Insecure Communication) 불충분한 개인 정보 보호 제어(Inadequate Privacy Controls) 부족한 바이너리 보호(Insufficient Binary ..
Sever-Client 웹 서버에 있는 리소스를 클라이언트가 받아 보려면, 클라이언트는 웹에게 특정 리소스를 지정하여 제공해달라고 요청해야 함. 이때, 서버는 해당 요청을 이해하고 대응되는 동작을 통해 클라이언트에게 리소스 반환함. Cookie 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용 정보 기록 : 웹 서버는 각 클라이언트의 팝업 옵션을 기억하기 위해 사용 상태 정보 : 웹 서버는 클라이언트를 식별할 수 있는 값을 저장하여 사용 HTTP 하나의 Request와 Response의 쌍이 독립적으로 구성되어 통신 connectionless 속성 : 하나의 요청에 하나의 응답을 한 후 네트워크 연결을 끝맺는 것 stateless 속성 : 네트워크가 연결이 끝맺을 때 상태를 유지하지 않는 것 위..
Level 0 SSH(Secure Shell) : 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜 접속 명령어 ssh [USER]@[HOSTNAME] -p [PORT] 명령어와 문제에 나온 패스워드를 입력하여 서버에 접속했다. Level 0 → Level 1 readme 파일 안에 패스워드가 있다. ls : 현재 디렉토리의 내용 나열 cd : 디렉토리 변경 cat : 파일 내용 표시 file : 파일의 유형 확인 du : 디스크 사용량 보고 find : 파일 및 디렉토리 검색 홈 디렉토리 안에 readme 파일이 있고, 해당 파일을 열어 패스워드를 확인할 수 있다. Level 1 → Level 2 '-'라는 이름을 가진 파일 안에 패스워드가 있다. `cat -`으로 입력하면 옵션으로 인식되..