#CSRF : Cross Site Request Forgery)

 - 인터넷을 사용하는 사용자가 자신의 의지와는 무관하게 공격자(해커)가 의도한 행위(생성, 삭제, 변경) 등 을

   특정 웹사이트에게 요청하게 만드는 공격

 

 - 희생자(사용자)의 권한에 한해서 실행(공격) 가능.

 

 - 조건

  -> 요청을 전송받는 사이트(서비스)에 희생자가 연결이 맺어진 상태(로그인 중)

  -> 희생자가 해커가 만든 사이트 혹은 게시글에 접속 혹은, 파일을 실행

  -> 웹 어플리케이션에서 정상적인 경로의 요청과 비정상적인 경로의 요청을 서버가 구분하지 못해야 함.

 

#패스워드 변경을 시도하고, 요청을 전송하지 않고 프록시에 고정.

 

#변경 후 응답받은 페이지를 분석

 - <form ...> : 폼 데이터를 서버로 보낼 때, 데이터가 도착할 url(action 속성), 방식(method) 등이 포함.

 

 - action="#" : 현재 페이지에 남아 있음.

   -> 해당 페이지에서 변경을 수행.

 

#form 태그의 action속성으로 html form 파일(.html)을 하나 생성.

 - action : 작업을 수행할 경로

 - input type="hidden" : 페이지에 입력받는 곳이 보이지 않게 해줌.

 - autocomplete : 자동완성 여부 (패스워드를 브라우저에 저장함)

 - name : 적용할 대상

 - value : 적용할 값

 - tyep="submit" : 버튼 생성

 

 -> 즉, (공격자의) 지정한 비밀번호들을 (희생자가) 버튼만 누르면 자동으로 전달되어서 적용되게 변경.

 

#파일 시나리오(메일)

 

#파일 실행

 

#end 

 - 버튼을 누르니 "비밀번호가 변경되었습니다." 멘트가 뜨고,

   비밀번호 검사를 하니 지정한 비밀번호가 유효하다고 출력된다.

 

 

tip) 이 문제를 실습하다 value를 잘못 지정해서 로그인이 안된 적 있는데,

     localhost/dvwa/setup.php에서 database를 다시 생성해주면 초기화 된다.

'Web > Dvwa' 카테고리의 다른 글

Dvwa(Level : Low) File Inclusion(RFI, LFI)  (0) 2021.05.17

+ Recent posts