목록전체 글 (57)
앵하니의 더 나은 보안
JWT는 json web token 약자로 보통 사용자 식별에 사용되는 세션의 대체용으로 사용된다. 클라이언트가 보낸 토큰 값을 서버에서 검증하는 방식을 사용해 세션과 같이 서버 저장 자원을 사용하지 않는다. 그래서 하나의 웹 서버에서 사용자를 식별할 땐 세션을 사용하면 되지만, 프론트 엔드 서버와 API 서버를 별개로 둔 경우에는 토큰을 사용해 사용자를 식별하는 편이다. 세션으로 관리하면 서버의 자원이 2배로 사용되고 유연성이 떨어지기 때문에 토큰을 사용하는게 합리적이다. JWT의 구조는 각각 header.payload.signature로 이루어져있으며 각 데이터는 base64 인코딩 된 상태로 데이터를 송수신한다. header : payload를 어떤 방식으로 암호화하여 signature값을 생성할지..
신분증 진위 확인 보안성 심의 진행 중 체크리스트에 '메모리 내 신분증 이미지 정보 노출' 항목이 존재해서 알아보게 됐다. ios 진단하면서 확인한 rbga8 데이터 포맷을 비트맵 이미지로 확인하려했다. 진단 하면서 rbga8 데이터의 주소값을 확인하고, 프로세스가 종료된 후 단말기의 메모리를 덤프해 해당 주소값에서 데이터값을 rbga8의 데이터로 추측되는 hex값을 그대로 가져왔다. 사진으로 찍은 이미지의 사이즈는 아래 frida 소스를 사용해 가로x세로 크기가 각각 1088이란걸 아는 상태 var org_width = ObjC.classes.PlatformOCR["+ getOriginWidth"]; Interceptor.attach(org_width.implementation, { onEnter: f..
문제 분석 fb 문제 클릭, 표시되는 정보 확인 후 ssh fd계정 접속 접속 후 파일 확인, fd프로그램과 소스, 플래그 파일 존재 flag 파일엔 fd 사용자의 읽기 권한이 없으니 fd프로그램을 이용해서 flag 파일을 확인하라는 문제인듯 함 fd.c 파일 통해서 fd 프로그램 원본 소스 확인 전달받은 인자 값에서 0x1234 값을 뺀 뒤 변수 fd(file descriptor로 추정)에 저장 read로 1에서 저장한 fd값을 첫번째 인자로 전달, 입력된 값을 buf에 32바이트만큼 저장 buf에 저장된 값이 "LETMEWIN\n"과 같으면 조건문 안으로 진입, setuid권한에 의해 /bin/cat flag 명령 수행가능 여기서 read(fd, buf, 32)가 핵심인듯 함 read(file des..
전자금융기반시설 보안 취약점 평가 항목 중 '취약한 https 재협상 허용' 이라는 항목이 존재한다. https(SSL/TLS) 재협상이란 기존 보안 세션 내에서 다시 핸드쉐이크를 진행함으로써 새로운 세션을 맺는 것을 뜻한다. 진단 시 기준은 insecure client-initiated renegotiation(클라이언트의 안전하지않은 재협상)을 시도했을 때 재협상이 가능할 경우 취약, 안전하지 않은 재협상을 지원을 하지않아 재협상이 불가능할 경우 양호로 판단한다. 취약한 https 재협상 허용 항목을 접했을 때 '그래서 이게 왜, 이게 취약하면 뭔데' 라는 생각에 한번 찾아본 것을 정리한다. 1. CVE-2009-3555 = 재협상 중간자 공격 클라이언트의 안전하지 않은 재협상이 이루어질 경우, 서버..