본문 바로가기

전체 글

(63)
[주통기반] 로컬 웹 해킹 취약점 찾기 (파일 업로드) 파일 업로드 취약점은 이용자가 원하는 파일을 업로드 할 수 있을 때 발생하는 취약점입니다.이때, 파일은 서버에서 실행할 수 있는 파일뿐 아니라 html, 설정파일 등도 포함될 수 있습니다. 서버에서 실행가능한 파일 같은 경우는 당연히 파일이 실행되면서 해당 서버에 원하는 코드를 실행시킬 수 있기 때문에 위험하지만 html 파일 같은 경우는 왜 위험할까요? 일단, 공격자가 악의적인 스크립트가 삽입되어있는 html을 업로드 시킨다면 이용자들은 도메인이 정상적인 사이트와 동일하기 때문에 당연히 속을 수 밖에 없습니다. 그래서 아이디, 비밀번호를 입력하면 공격자에게 보내는 코드로 인해 탈취당할 수도 있습니다.하지만, 보통 파일 업로드가 가능하다면 서버에서 실행가능한 파일을 업로드하여 웹 쉘을 얻어 서버에 명령을..
[주통기반] 로컬 웹 서버 취약점 찾기 (자동화 공격) 자동화 공격은 서버에 요청을 자동으로 보낼 수 있는 있는 공격입니다.이때 로그인 시도를 자동으로 요청이 가능하다면 아이디에 대한 모든 비밀번호를 넣어 요청을 보낼 수 있으며, 이로인해 비밀번호가 탈취될 수 있습니다.그리고, 우리 웹 서버같은 경우 게시글 작성이 가능한데 게시글 작성의 경우 게시글 정보가 서버에 저장되고 저장된 정보를 통해 게시글을 운영할 수 있습니다. 이러한 게시글 작성이 자동으로 할 수 있다면 엄청난 양의 게시글을 작성할 수 있고 많은 양의 게시글로 서버의 저장공간을 부족하게 만들어 정상적인 서비스 이용이 불가능하게도 할 수 있습니다. 그렇기 때문에 사람이 아닌 자동 요청에 대한 처리가 필요합니다. 점검 방법 : 웹 애플리케이션의 특정 서비스에 대한 반복적인 요청의 통제가 이루어지는지 ..
[주통기반] 로컬 웹 서버 취약점 찾기 (세션 고정) 세션 고정 취약점은 사용자에게 항상 똑같은 세션 아이디를 발급하는 취약점으로 로그인 실행 전과 실행 후에 같은 세션 아이디가 발급될 경우 위험이 발생할 수 있습니다. 만약 로그인 전과 후의 세션 아이디가 같다면 로그인 하기 전에 탈취 당한 세션 아이디를 공격자가 가지고 있다가 피해자가 인증을 진행한다면 세션 아이디는 고정되어 있기 때문에 전에 탈취한 세션을 통해 인증을 우회할 수 있습니다. 점검 방법 : 로그인 시도마다 기존 세션 아이디는 파기하고 새로운 세션 아이디를 발급하는지 확인합니다. 1. 로그인 1) 로그인 전에 발급 받은 세션 아이디를 확인합니다. 2) 로그인 후 세션 아이디를 확인합니다. [공격 시나리오] 위에 설명한 공격 시나리오 이해를 돕기위해 실습해보겠습니다. 피해자의 전에 사용한 세션..
[주통기반] 로컬 웹 서버 취약점 찾기 (불충분한 인가) 불충분한 인가는 주어진 권한을 초과하여 페이지에 접근이 가능한 취약점으로 만약 중요한 페이지에 접근할 수 있다면 정보를 열람, 변조할 수 있습니다. 즉, 사용자에게 주어진 권한 외에 다른 행동이 가능한 경우 위험이 있을 수 있습니다. 점검 방법 : 접근제어가 필요한 중요 페이지의 통제수단이 적절한지 판단하며 접근이 여부 확인 1. 게시글 수정1) 게시글 수정 페이지에 접속합니다. 2) 게시글 수정 후 수정 요청을 잡아 확인합니다. 게시글 수정 시 수정할 정보와 boardId의 값으로 수정을 진행하고 있습니다.boardId 값만 변경한다면 원하는 게시글을 수정할 수 있습니다. 3) 수정할 게시글 번호 확인합니다. admin 계정이 작성한 게시글의 번호를 확인했습니다. 4) 파라미터값을 변조하여 게시글 수정..
[주통기반] 로컬 웹 서버 취약점 찾기 (CSRF) CSRF는 사용자의 의지와 상관없이 서버로 공격자가 원하는 임의의 요청을 보내게 하는 공격입니다. 그렇기 때문에 서버에서 발생하는 모든 요청이 CSRF 공격의 대상이 될 수 있고, 요청의 중요성을 판단하여 대응이 필요합니다. 만약 서버에 사용자의 비밀번호 변경 요청이나, 계정 삭제 등의 요청을 사용자의 의지와 상관없이 보낼 수 있게 된다면 사용자는 자신도 모르게 비밀번호가 변경되고 계정이 삭제되는 것입니다. 제가 만든 서버에 CSRF 취약점을 찾으려 했는데 POST 메서드를 사용하는 요청은 전에 XSS에 대해 대응을 적용하여 폼을 생성할 수 없었고, GET 메서드 요청에는 그닥 CSRF 공격을 통해 효과를 보지 못하였습니다. 그렇다고 POST 메서드로 요청을 처리한다고 CSRF 공격을 무조건 막을 수 있..
[주통기반] 로컬 웹 서버 취약점 찾기 (불충분한 인증) 불충분한 인증 취약점은 중요 페이지에 접근 시 인증 절차가 불충분하여 권한이 없는 사용자가 중요 페이지에 접근할 수 있게 되는 취약점입니다. 해당 취약점으로 마이페이지 같은 중요 정보가 저장되어 있는 페이지에 접근할 수 있고, 이로 인해 정보가 노출될 위험이 있습니다. XSS 취약점과 연계하여 해당 페이지에 접근하여 중요 정보를 가져올 수 있습니다. 점검 내용 : 중요 페이지 접근 시 추가 인증 요구 여부 점검 1. 마이페이지 1) 로그인 후 마이페이지에 접속합니다. 마이페이지 접속 시 추가 인증 없이 접속이 가능한 것을 확인할 수 있습니다. 마이페이지 같은 중요 페이지에 추가 인증이 없을 경우 위에서 설명한 것처럼 취약하다고 판단합니다. [대응 방안] 해당 페이지 접근 시 추가 인증 로직을 구현하여 권..
[주통기반] 로컬 웹 서버 취약점 찾기 (약한 문자열 강도) 약한 문자열 강도는 패스워드와 같이 중요한 문자열을 유추 가능한 문자열로 설정이 가능하여 만약, 약한 강도의 패스워드로 설정하였을 때 단순히 패스워드 추측만으로 계정이 탈취될 수 있습니다. 또한, 자동화 공격 취약점과 같이 발생할 경우에는 패스워드에 대해 무차별 대입 공격으로 패스워드를 탈취할 수도 있습니다. 점검 방법: 패스워드 생성 시 약한 강도의 패스워드 설정이 가능한지 확인합니다. 1. 약한 비밀번호 설정 1) 회원가입 페이지에 접속합니다. 2) 계정 생성 시 약한 강도의 비밀번호를 설정합니다. 비밀번호를 easy로 쉽게 설정하였습니다. 3) 약한 강도의 비밀번호가 사용가능한지 확인합니다. 계정이 생성되고 로그인도 정상적으로 할 수 있는 것을 확인했습니다. 아이디가 easy이기 때문에 비밀번호도 ..
[주통기반] 로컬 웹 서버 취약점 찾기 (크로스사이트 스크립팅) XSS는 사용자의 입력이 웹 서비스 이용 시에 응답에 그대로 포함되어 출력될 경우 발생할 수 있습니다. 웹 브라우저에서 실행가능한 스크립트를 입력하여 응답에 포함될 경우 웹 브라우저는 해당 스크립트를 실행하게 되어 사용자가 특정 행동을 하게 할 수 있습니다. 스크립트에 쿠키 값을 공격자에게 보내는 코드를 작성하거나 악성 콘텐츠를 다운받는 코드를 작성 시 클라이언트 측에서 해당 동작을 수행하게 할 수 있습니다. 점검 방법 : 삽입한 스크립트가 클라이언트측에서 실행되는 지 확인합니다. 1. 게시글 작성 1) 메인 게시판에서 글쓰기를 통해 게시글 작성 페이지에 접속합니다. 2) 게시글 작성 시 제목이나 내용에 스크립트를 삽입합니다. 제목에 작성 시 제목이 출력되는 메인 게시판에서도 스크립트가 실행될 것이며, ..