본문 바로가기

보안지식/CSRF

(8)
SSRF 공격 - 정리,실습 안녕하세요! SSRF 공격에 대해 정리를 해드리겠습니다. - SSRF? - Server Side Request Forgery 입니다. CSRF랑 원리는 같지만 SSRF은 서버와 임의의 요청을 하게 만드는 공격입니다! CSRF는 클라이언트와 임의의 요청을 하게 만드는 공격이고요 - 그럼 어디서 공격 되나요?(where?) 서버가 외부 자원(리소스) 이용하는 곳에서 발생합니다! 더군다나 파라미터로 URL을 받는 경우입니다. 예를 들어 볼게요. 제가 날씨를 알려주는 API 기능이 있다고 합시다. 이때 날씨 정보를 가져오는 API을 URL에 파라미터로 쓰는 곳에 공격을 통합니다. view.php?weatherAPI=https://kakao.com/~~~ 이렇게 API의 정보를 URL 파라미터에 담은 경우입니다...
CSRF 3번 공격 시나리오 안녕하세요 이번엔 저번에 실습한 3번 문제의 공격 시나리오을 짜려고 합니다. 처음이라 많이 모자르고 부족한 게 많습니다! 유의해주세요 https://mynameisarke.tistory.com/58 CSRF 공격 - 실습 (3번 풀이) 시작하겠습니다. 저번에 했던 csrf 실습이랑 내용이 같습니다. 그런데 조금 난해한 부분이 있죠 저 토큰 값이 랜덤으로 할당이 되어서 저 값을 가져와야만 회원 수정이 가능합니다! 이 토큰 값은 mynameisarke.tistory.com 실습한 내용은 윗 링크에 있습니다. 시작하겠습니다! CSRF 3번- 이 사이트에 비밀번호를 변경을 할 때 따로 인증 과정이 아닌 csrf token을 랜덤으로 할당을 하여서 일치하면 변경이 되는 걸로 되어 있습니다. 하지만 이 csrf t..
CSRF 2번 공격 시나리오 안녕하세요 이번에는 제가 한 2번 실습 문제를 공격 시나리오을 짜보려고 합니다 처음이라 많이 부족합니다! CSRF 실습 2번- 이 사이트의 비밀번호 변경을 할 때 인증 과정이 없고 새로운 비밀번호만 입력만 되어도 변경이 가능한 취약점을 찾았습니다. 그리고 게시판에 XSS 취약점이 있는 것을 찾았습니다. 이 2개를 이용하여 CSRF 공격이 통합니다. CSRF 란? 클라이언트의 의지와는 무관하게 공격자가 의도한 행위를 특정 사이트에 요청을 하는 겁니다. XSS 란? URL, 글에 악성스크립트을 넣어서 클라이언트 측에서 실행되는 코드에 그 악성 스크립트을 실행되게 하여 공격자가 원하는 정보 또는 행위을 하는 삽입 공격입니다. _______________________________________________..
CSRF 1번 공격 시나리오 안녕하세요 이번에는 한 번 공격 시나리오을 짜보려고 합니다. 이번이 처음인지라 저도 많이 찾아보고 참고을 하고 수정을 많이 하겠습니다. 시작하겠습니다. CSRF 실습 1번- 한 페이지의 게시판에서 XSS 공격이 통하는 게시판을 발견했습니다. 그리고 마이페이지에 비밀번호 변경을 할 때 새로운 pw의 파라미터만 있으면 변경된다는 취약점을 찾았습니다. 이 두 개을 이용하여 CSRF 공격이 통합니다. CSRF란? 사이트 간 요청 위조(Cross-sire rquest forgery)으로 자신의 의지와는 무관하게 공격자가 의도한 행위 (삭제,수정,변경 조회 등)를 특정 웹사이트에 요청을 하는 공격입니다. 1) 마이페이지 비밀번호 변경 비밀번호 변경할 때 pw의 파라미터만 보내면 되는 취약점을 찾았습니다. 게다가 P..
CSRF 공격 - 실습 (3번 풀이) 시작하겠습니다. 저번에 했던 csrf 실습이랑 내용이 같습니다. 그런데 조금 난해한 부분이 있죠 저 토큰 값이 랜덤으로 할당이 되어서 저 값을 가져와야만 회원 수정이 가능합니다! 이 토큰 값은 마이페이지에 들어가기만 하면 자동으로 할당해지게 되어 있네요 그럼 일단 전에 실습 한 코드에서 추가 코딩하면 될 거 같습니다. 이론은 쉽죠! 먼저 mypage.php에 들어가서 이 응답 메시지에 있는 csrf_token 값을 가져오고 form 태그에 csrf_token에 넣고 바꿀 pw을 적어서 보내기만 하면 되겠죠! 일단 POST 방식만 통하니 XSS 공격이 통하는 곳을 찾아 스크립트을 작성 하겠습니다. 저는 fetch 함수로 mypage.php을 들어가고 난 뒤 DOMParser(); 으로 응답 메시지를 받았습..
CSRF 공격 - 실습 (2번 풀이) 저번 포스팅에 이어서 풀어보겠습니다. 정상대로 로그인을 하겠습니다. CSRF 공격이니 비밀번호 수정하기 위해 마이페이지에 비밀번호를 수정해 보겠습니다! 그리고 버프 스위트로 확인해 보겠습니다. 한 번 GET 방식으로 해보겠습니다. 그럼 POST 방식으로 공격을 하면 되겠죠! XSS 공격이랑 병행하면 됩니다. 전 포스팅에 GET 방식으로 공격한 코드에서 form 태그에 POST으로 바꾸기만 하면 됩니다! 이렇게 하시면 iframe 으로 새 창에 form 태그가 보내지는데 높이랑 너비 값이 0이고 style이 none이라 피해자의 눈에 안 보입니다! 그리고 클릭만 해도 이 POST 방식으로 보내지게 스크립트에 document.forms[0].submit() 이용했습니다. 버프 스위트 통해 확인을 해보니 결국..
CSRF 공격 - 실습 (1번 풀이) CSRF 공격 실습을 해보겠습니다. 일단 정상대로 회원가입을 하고 로그인을 해보겠습니다. 그다음에 저희는 특정 아이디의 비밀번호를 변경을 하는 거잖아요? 그러니 한 번 비밀번호 수정을 해보겠습니다. 그런 다음 버프 스위트 통해 확인해보겠습니다. 그냥 단순하게 id가 hello 이고 새로운 비밀번호를 작성해 보내기만 해도 되는지 한 번 리피터로 이용해 보겠습니다. 그럼 이번엔 GET 방식으로도 통하는지 해 보겠습니다. 그럼 이 걸 이용하겠습니다. id도 자동으로 할당이 되고 비밀번호 값만 바꾸면 되겠죠? 그러니깐 링크 생성 할 때 이 마이페이지의 링크 이용하면 되겠죠 http://ctf.segfaulthub.com:7777/csrf_1/mypage_update.php?info=&pw=12345654321 ..
CSRF 정리 안녕하세요 이번에는 CSRF 즉 Cross Site Request Forgery 공격을 공부하겠습니다. 이번 공격을 요약을 하면 클라이언트가 모르게 비밀번호를 바꾸게 하는 공격입니다. 어떻게 하는지는 실습하면서 보여드리는 데 이번 포스팅은 일단 이론만 설명드리고 다음 포스팅에 실습하면서 보여드리겠습니다. - CSRF ?- 공격자가 CRSF 스크립트가 포함된 메시지 또는 게시물을 넣었을 때 사용자가 그 스크립트을 확인하는 순간 사용자가 사용하는 세션을 가져오고 그걸 통해 비밀번호를 바꾸거나 다른 정보를 빼오는 겁니다. 방금 세션을 가져온다고 했잖아요? 바로 이 세션을 이용해서 악의적인 공격을 하는 것이 주 공격입니다 그래서 제약이 있습니다. 사용자가 로그인을 한 상태여야만 가능한 공격입니다. 그래서 게시판..