분류 전체보기

    Cryptography(암호학) - 고전암호

    Cryptography(암호학) - 고전암호

    오늘은 고전 암호에 대해서 알아볼 것이다.(참고:드림핵 암호학 강의) 1. 고전암호 고전 암호는 요즘처럼 좋은 컴퓨터가 생기기전에 주로 사용한 암호인데, 지금은 그 암호의 복호화가 너무 쉽기때문에 특별한 경우 빼고 잘 사용하지는 않는다. 고전암호는 치환, 전치 의 과정으로 암호화한다. 치환은 평문 문자를 다른문자로 바꾸는 것이다. 전치는 평문 문자의 위치를 바꾸는 것이다. 고전 암호 중 한 가지 원리만 이용한 것에는 치환 암호, 전치 암호가 있고, 더 많은 원리를 이용한 것에는 단일 문자 치환 암호, 다중 문자 치환 암호가 있다. 단일 문자 치환 암호는 평문의 각 글자를 약속된 다른 문자로 치환하는 암호이다. 대표적으로 카이사르암호 라는 것이 있는데, 이는 평문의 각 알파벳을 일정한 거리만큼 밀어서 다른..

    Cryptography(암호학) - 배타적 논리합과 합동식

    Cryptography(암호학) - 배타적 논리합과 합동식

    오늘은 배타적 논리합, 합동식에 대해 알아볼 것이다. 1. 배타적 논리합(XOR) 배타적 논리합은 XOR이라고도 불리는데 이는 입력으로 들어온 두 입력값(인자)가 다를 경우 True(참)을 반환하는 연산이다. XOR은 기본적으로 비트단위로 이루어진다. 2진법으로 각 자리 수가 같은면 0, 다르면 1을 반환한다. 2. 합동식 합동식은 두 정수 x,y를 m으로 나눴을때 나머지가 같은지 확인하는 것이다. x,y를 각각 m으로 나눴을때 같으면, x와 y가 mod m에 대해 합동이라고 한다. 예를들어, 13과 3은 10으로 나눴을때 나머지가 같으므로 아래처럼 나타낸다. 13 ≡ 3(mod 10) 그리고 12와 5를 3으로 나눴을때 나머지는 다르므로 아래처럼 나타낸다. 만약 a,b가 mod m에 대해 합동이면, 아..

    JavaScript - HTML과 JS

    JavaScript - HTML과 JS

    1. WRITE 먼저 html과 js의 쓰기 법이 차이이다. 아래의 코드를 살펴보자. HHJ JS 5+5 글자를 쓰면 html, js가 둘다 비슷하다. 만약 x+y처럼 산수를 하면 두 결과가 다르다. 위를 보면 js에서는 document.write(5+5);를 하면 동적이라서 5+5를 한 값 즉 10이 나온다. 하지만 html은 정적이라서 5+5를 쓰면 '5+5'라고 그대로 나온다. 2. event js에는 event라는 것이 있다. 무언가를 동작하면 어떤걸 동작하게 하는 것이다. 이벤트는 대략 10~20개 정도의 이벤트가 정의 되어있다. 예를 들면 onclick(), onchange(), oninput()등이 있다. event안에는 무조건 js가 들어가야 한다. 위를 실행하고 버튼을 누르면 1를 알람,..

    FAT32 파티션 복구(Forensics)

    FAT32 파티션 복구(Forensics)

    오늘은 외장디스크(USB)의 형식인 fat32 형식의 파티션을 복구해볼 것이다. 1. FAT32 복구 먼저 ftk imager로 열어보았다. 이미지파일이 손상되어 나타나지 않는다. 그러면 HxD disk image모드를 실행해보자. sector(512bytes) 0에 부트코드가 끝난후 파란색 부분 부터 파티션테이블이 들어간다. 맨처음 부팅 코드가 0x80이므로 부팅가능한 이미지파일이다. 그러면 파티션 시작주소를 찾아보자. 중간에 [3f 00 00 00]이 파티션 시작 섹터이다. 파티션 정보는 리틀엔디언으로 저장되기 때문에 실제로는 섹터 3f에 있다. 3f는 정수로 63이다. 그러면 63섹터로 이동해보자. Disk Fail이라고 뜨는 것을 보니 시작 섹터가 손상되었다. FAT32는 복구 파티션이 시작섹터+..

    Forensics - 하드디스크의 구조, MBR 이란?

    Forensics - 하드디스크의 구조, MBR 이란?

    오늘은 하드디스크의 구조, MBR에 대해서 공부 해볼것이다.(참고 : Start! 디스크포렌식) 1. 하드디스크의 구조 2. MBR 1. 하드디스크의 구조 하드디스크는 크게 6가지로 구성된다. 1. 전원 커넥터 : 전원을 공급하는 단자 2. 데이터 커넥터 : 데이터를 전송하는 단자 3. 헤드 : 데이터 읽는 역할 4. 액츄에이터암 : 헤드를 데이터가 있는 위치로 이동 5. 플래터 : 데이터 저장공간 6. 스핀들 : 플래터를 돌려주는 역할 플래터 단면은 아래 사진에서 확인할 수 있다. 트랙, 섹터, 트랙 섹터, 클러스터가 있다. 트랙 : 섹터단위의 모음이며, 원심 전체가 트랙이다. 섹터 : 물리적인 최소단위(512bytes) 트랙 섹터 : 같은 구역에 있는 섹터집합 클러스터 : 섹터 단위를 묶어 데이터의 ..

    DigitalForensic with CTF(ctfd) - 제 친구의 개가 바다에서…(writeup)

    DigitalForensic with CTF(ctfd) - 제 친구의 개가 바다에서…(writeup)

    오늘은 포렌식문제가 미친듯이 많은 ctfd의 제 친구의 개가 바다에서 라는 문제를 풀어볼 것이다. 먼저 문제파일을 확인해보면 뭔가 하얀 사진이다. 이런거는 stegsolve로 확인하거나 사진 forensic tool를 이용하여 풀면 될 것 같다. 그러면 먼저 stegsolve를 이용하여 보자. stegsolve를 열어서 돌려 보면 Red Plane1에 희미하게 글씨가 보인다. 여기서 확인이 어렵다. 그러면 포렌식툴을 이용해 보자.(https://29a.ch/photo-forensics/#forensic-magnifier) 일단은 사진을 넣고 확인해보면 luminance-gradient에서 가운데 희미했던 부분이 확인된다. Intensity : 15.00 , Opacity : 1.00으로 하면 제일 잘 나..

    HackCTF - So easy? (forensics writeup)

    HackCTF - So easy? (forensics writeup)

    이번에는 so easy문제를 풀어볼것이다. 100점 짜리 쉬운 문제이다. 일단은 파일을 받으면 qwer이라는 파일이 있다. 안에는 qwer.jpg가 있다. 그러면 먼저 strings 명령어로 확인해보자. 맨 밑에 쪽에 이런식으로 HackCTF{He_s0ggazzi_long}이라는 문자열이 있는데 이것은 flag가 아니다. 그러면 안에 있는 hidden.txt안에 flag가 있을것이다. PK(zipfile)라고 적혀있고 다음으로 hidden.txt가 있는걸 보면 zip파일을 해제하면 hidden.txt가 나올 것이다. 그러면 이제 파일을 추출해보자. Foremost라는 도구를 이용한다.(sudo apt-get install foremost(linux), brew install foremost(mac)) 그..

    HackCTF - Question? (forensics write up)

    HackCTF - Question? (forensics write up)

    오늘은 hackCTF의 question이라는 문제를 풀어볼 것이다. 이것은 완전 포렌식의 기초중의 기초문제이다. 일단 파일을 다운 받아보자. 일단은 이렇게 zip파일을 해제하면 Do_you_know_HxD라고 나온다. HxD는 파일의 raw, ascii를 보여준다. 따라서 파일안의 string을 보여주는 strings를 사용해도 flag획득이 가능하다. strings로만 하면 flag찾기 어려우니 flag형식인 HackCTF를 grep로 찾았다. flag획득에 성공했다. flag : HackCTF{P1e45e_find_m3}