티스토리 뷰
CSRF 강좌 정리
1. CSRF 관련 동영상
CSRF : 특정 사용자의 권환을 뺏어오다기 보단, 특정 동작이나 행위를 하게끔 하는 기술
매개변수를 get 방식을 통해서 post 방식과 똑같이 행동 가능할 수 있음 (방어책이 없는 경우에만!)
내용에 아래와 같은 코드를 작성함을 통해, 읽은 사람은 컴잘알에서 글 제목과 내용, 소스 코드를 fool로 강제적으로 작성하도록 함.
<iframe arc="http://dowellcomputer.com/hacking/talk/talkWriteAction.jap?talkType=JAVA&talkTitle=fool&talkContent=fool&talkSourceCode=fool" width="0" height="0" frameborder="0"></iframe>
2. 드림핵 client-side hacking에서 CSRF 부분
CSRF : Cross Site Request Forgery
CSRF 공격 : 비정상적으로 사용자의 의도와 무관하게 다른 사이트에 HTTP 요청을 보내는 것, 해당 세션 쿠키를 가진 사람만 사용할 수 있는 기능을 요청할 수 있음
CSRF 공격을 성공적으로 수행하기 위한 조건
1. 해당 웹 사이트가 쿠키를 이용한 인증 방식을 사용해야 한다.
2. 공격자가 사전에 알 수 없는 파라미터가 존재해서는 안 된다.
CSRF 공격을 막기 위한 방법 (서버 사이드에서 추가적인 검증을 사용하는 방법)
1. 세션 쿠키 대신 커스텀 헤더를 사용하여 사용자 인증
2. 공격자가 예측할 수 없는 파라미터 추가 및 검증
SameSite Cookie
기존에는 Domain, Expires, Path 등만 포함했지만 새롭게 SameSite 옵션이 추가되었다. 크로스 사이트에서 출발한 요청에 제한적으로 쿠키를 포함시키게 하는 옵션이다. 총 세 가지(Strict, Lax, Normal) 값을 설정할 수 있다.
XSS 문제 풀이
1. Root-me : CSRF- 0 protection
처음 문제는 로그인 화면이 나와있어서 Username, Password에 a, a를 입력해주었다. 입력하니 Status를 선택할 수 없게끔 되어 있어서, disabled를 지워주면 되겠구나 싶었다. 그래서 아래의 코드에서 disabled를 지워주고 체크한 후 제출했는데, You're not an admin! 이라고 나왔다. 이 방식 말고, contact에서 글을 작성해서 접근할 수 있게끔 하면 될 거라 생각했다. 근데 어떻게 접근시켜야 할지 감이 안 온다... 옆의 사진이 contact부분인데, comment에 적당한 코드를 작성해서 하면 될 거라 예측이 된다..
2. xss challenge : #1 ~ #5
#1) 주어진 문제는 오른쪽 사진과 같았다. What you have to do에 주어진 내용을 통해 search에 <script>alert(document.domain)</script>을 작성하면 됨을 알 수 있었다.
#2) 주어진 문제는 아래 왼쪽 사진과 같았다. 해야하는 것이 #1번과 같았기 때문에 똑같이 입력해주었지만, 역시나 아니었다. 그래서 코드를 살펴보았다. input 태그에서 다음와 같은 값이 들어있어서, <input type="text" name="p1" size="60" value><script>alert(document.domain)</script>를 입력해줌으로써 해결할 수 있었다.
#3)
주어진 문제는 위와 같았다. 그래서 우선 <script>alert(document.domain)</script>를 입력해보았는데, 원하는대로 작동이 되지 않았다. 이 문제에서는 나라를 선택해서 입력해주었기 때문에, 선택 항목을 통해 입력을 해줄 수 있지 않을까 싶어서 선택 항목을 <script>alert(document.domain)</script>로 바꿔주고 입력해주었더니 원하는대로 작동되었다.
#4)
주어진 문제는 위와 같았다. #3번과 비슷해서 풀이한 것처럼 똑같이 해보았지만 실패했다. 코드를 더 살펴보았는데, input 관련 코드가 보였다. 이를 보고 #2번의 풀이처럼 앞에 붙여줌으로써 해결할 수 있었는데, 아니었다..
참고 : CSRF 관련 동영상 https://www.youtube.com/watch?v=nzoUgKPwn_A&t=244s
드림핵 client-side hacking에서 CSRF 부분 https://dreamhack.io/learn/1/7#19
첫번째 문제 https://www.root-me.org/en/Challenges/Web-Client/CSRF-0-protection
두번째 문제 http://xss-quiz.int21h.jp/
'해킹 > 웹해킹' 카테고리의 다른 글
8주차 과제_bandit 워게임(2) (0) | 2021.02.01 |
---|---|
7주차 과제_bandit 워게임 (0) | 2021.01.17 |
5주차 과제 2_XSS 관련 문제 풀이 (0) | 2020.11.30 |
5주차 과제 1_XSS 강좌 정리 (0) | 2020.11.30 |
4주차 과제 2_워게임 풀이 (0) | 2020.11.22 |