CSRF(Cross-Site Request Forgery; 크로스 사이트 요청 위조)CSRF(Cross-Stie Request Forgery)는 서버에서 요청 주체와 요청 절차를 확인하지 않고 요청을 처리하는 경우 발생할 수 있는 공격입니다. 사용자의 권한으로 요청이 실행되는 취약점입니다.=> 자동 회원가입=> 게시판 자동 글쓰기=> 광고 배너 클릭 예시패스워드 변경요청 changePwForm.jspNew Pw: _______New Pw: _______[change] 패스워드 변경처리 changePwProc.jsp?newpw=(1) 인증(로그인) 여부 확인(2) 처리에 필요한 값 중 사용자가 결정해야 할 값이 전달되었는지 확인(newpw)(3) 처리에 필요한 값 중 시스템이 가지고 있는 값을 추출 -> ..
Bee-Box(비박스) CSRF(Transfer Amount) 송금은 중요기능이며, 중요기능을 구현할 때는 반드시 정상적인 절차에 따른 요청인지 확인(Token 사용)하고, 요청 주체를 확인하는 로직이 반영(재인증,재인가)되어야합니다. (1) Bee-Box에서 http://beebox/ 사이트로 이동하여 로그인합니다.(bee/bug) (2) Cross-Site Request Forgery(Transfer Amount)로 이동합니다. (3) 서버로 전달되는 내용을 확인합니다. => 개발자도구(F12)에서 소스코드를 확인 => GET방식 http://localhost/bWAPP/csrf_2.php?account=123-45678-90&amount=0&action=transfer ⇒ 요청 절차와 요청 주체를 ..
이전 포스트에 이어서 작성하였습니다. [보안 취약점 진단 및 대응/openeg] - openeg CSRF openeg CSRF openeg CSRF CSRF 취약점을 가지고 있는 게시판에 자동 글쓰기 코드 추가 (1) eclipse에서 Ctrl + Shift + R을 눌러 BoardController.Java를 검색합니다. (2) 이전에 수정했던 코드를 주석처리합니다. (3) http://victim:8 psjin230.tistory.com 이전 실습에서 게시판에 존재하는 취약점 종류 => 실행 가능한 스크립트 코드를 게시판에 등록하면 게시판 상세페이지에서 스크립트 코드가 실행되므로 Stored XSS 취약점이 존재 => 게시판 등록에 필요한 값을 자동으로 전송하는 코드를 게시판에 등록했을 때 해당 게시..
openeg CSRF CSRF 취약점을 가지고 있는 게시판에 자동 글쓰기 코드 추가 (1) eclipse에서 Ctrl + Shift + R을 눌러 BoardController.Java를 검색합니다. (2) 이전에 수정했던 코드를 주석처리합니다. (3) http://victim:8080/openeg에 접속하여 로그인합니다. (test/test) (4) 게시판 내용에 스크립트 코드를 추가했을 때 스크립트 코드가 동작하는지 확인합니다. => 게시글을 작성하고, 작성한 게시글을 확인하면 스크립트 코드가 동작하는 것을 확인할 수 있습니다. (5) 게시판 글쓰기 화면이 동작하는 코드를 확인합니다. (6) 게시판 코드를 바탕으로 다음 코드를 생성하여 게시글을 등록합니다. 청년(만 39세이하)을 대상으로 시중에서 가장..
Bee-Box(비박스) CSRF (1) Bee-Box에서 http://beebox/ 사이트로 이동하여 회원가입을 합니다. (2) 계정이 잘 만들어졌는지 확인하기 위해 생성한 계정으로 로그인합니다. (3) 로그아웃 후 bee계정으로 로그인 합니다. (4) Cross-Site Request Forgery(Change Password)로 이동합니다. => 패스워드 변경페이지를 보면 현재 패스워드를 입력하는 재인증을 위한 입력창이 존재하지 않음을 볼 수 있습니다. (5) 패스워드를 password로 변경합니다. => 패스워드를 변경하는 중요 기능을 구현할 때 요청 주체 및 요청 절차를 확인하지 않고 요청을 처리(패스워드 변경)하고 있습니다. => 주소창을 확인해보면 정상적인 요청에 따른 절차인지 확인하는 토큰 ..
XSS와 CSRF XSS 공격은 Cross Site Scripting의 약자로, 웹 애플리케이션에서 많이 나타나는 취약점 중 하나입니다. 공격자가 웹페이지에 악성스크립트를 삽입하는 공격입니다. [XSS 종류] ▷ Reflected XSS: 사용자(웹브라우저) -> 서버 -> 사용자(웹브라우저) => EX) 피싱메일, 스미싱링크 ▷ Stored XSS(=persistent XSS): 사용자(웹브라우저) -> 서버 -> DB -> 서버 -> 사용자(웹브라우저) => 가장 위험한 공격 => DB/서버에 악성 스크립트가 저장되기 때문에 이 데이터를 지우지 않는다면 해당 페이지를 볼 때 마다 스크립트가 실행됩니다. ▷ DOM-Based XSS: 사용자(웹브라우저) CSRF 공격은 Cross Site Request..
크로스사이트 요청 위조(CSRF) 정의 특정 웹사이트에 대해 사용자가 인지하지 못한 상황에서 사용자의 의도와는 무관하게 공격자가 의도한 행위 (수정, 삭제, 등록 등)를 요청하게 하는 공격 웹 응용프로그램이 사용자로부터 받은 요청이 해당 사용자가 의도한 대로 작성되고 전송된 것인지 확인하지 않는 경우 발생 가능 안전한 코딩기법 해당 요청이 정상적인 사용자의 정상적인 절차에 의한 요청인지를 구분하기 위해 세션별로 CSRF 토큰을 생성하여 세션에 저장하고, 사용자가 작업 페이지를 요청할 때마다 hidden 값으로 클라이언트에게 토큰을 전달한 뒤, 해당 클라이언트의 데이터 처리 요청 시 전달되는 CSRF 토큰값을 체크하여 요청의 유효성을 검사 하도록 한다 코드예제 미들웨어 설정 프로젝트 폴더(djangoPro..