터키어 문자 ı와 보안 취약점

해커뉴스를 통해 재밌는 글을 읽었다. case mapping collision이라고 해서, 자바스크립트에서 ‘ß’.toLowerCase()가 ‘ss’가 되는 등 유니코드 일부 문자의 대소문자가 일반 로마자와 같은 것으로 취급된다고 한다. 터키어의 ‘ı'(“점 없는 i”)의 경우 소문자로 변환하면 ‘i’와 같아진다고 한다. 그래서 다음과 같은 상황이 벌어질 수 있다고 한다. 예컨대 깃허브에서는 패스워드 리셋을 요청할 때, string으로 입력받은 이메일 주소에 toLowerCase를 씌워 소문자로 […]

Read More 터키어 문자 ı와 보안 취약점

클리어 불가능한 스테이지 만들기: 마리오 메이커의 취약점을 찾아서

슈퍼 마리오 메이커에서는 아무도 클리어할 수 없는 스테이지가 올라오는 것을 막기 위해서 스테이지할 때 “업로드 체크”를 거치도록 한다. 스테이지를 올릴 때 업로더는 직접 그 스테이지를 플레이해야 하고, 클리어한 뒤에야 업로드가 가능해지는 식. 그러나 많은 사람들은 이 마리오 메이커의 룰의 빈틈을 파고들어 클리어 불가능 스테이지 업로드에 도전해왔다. 그 노력의 결실들 중 하나. 위 스테이지는 중간에 죽지 […]

Read More 클리어 불가능한 스테이지 만들기: 마리오 메이커의 취약점을 찾아서