티스토리 뷰

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함