CSRF
Low
Step 1) 패스워드 '1234'로 변경
Step 2) response를 통해 password 값의 폼 데이터 확인
Step 3) html 작성
Step 4) 해당 html 접속
Test Credentials에서 확인해보면 변경된 것을 확인할 수 있음
Medium
view source)
referer 확인
-> 같은 서버에서 요청이 올 경우 referer이 같음
Step 1) 정상 변경 시 referer 확인
Step 2) csrf_low.html 접속
referer 값이 일부 생략됨
Step 3) html 작성
브라우저 정책으로 인해 url path, query string에 포함된 개인정보가 유출되는 것을 방지
-> referer에서 origin이 동일하지 않다면 수집 불가능
referrerpolicy 설정
unsafe-url로 설정하여 보안에 관계없이 요청을 수행할 때 원본, 경로 및 쿼리 문자열을 보냄
Step 4) 해당 html 접속
referer 값이 나오는 것을 확인
High
view source)
Anti-CSRF token: 사용자 브라우저에 정보(토큰)를 제공하고 웹 브라우저가 다시 전송하는지 확인하는 것
Step 1) csrf_high.js 작성
*Ajax: 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지 일부만을 위한 데이터를 로드하는 기법
*익스플로러 7과 그 이상의 버전, 크롬, 파이억폭스, 사파리, 오페라에서는 XMLHttpRequest 객체, 익스플로러의 구형 버전인 5와 6 버전에서는 ActiveXObject 객체를 사용
*withCredentials: HTTP Cookie와 HTTP Authentication 정보를 인식할 수 있게 해주는 요청
regax에 정규표현식으로 user_token 값만을 가져옴
token 값과 바꿀 pass 값을 넣어 url 생성
Step 2) csrf_high.js 실행
Step 3) 해당 토큰을 가지고 csrf_high.html 작성 후 실행
Impossible
기존 비밀번호 검사
'Study > Web' 카테고리의 다른 글
[DVWA] CSP Bypass (0) | 2021.06.14 |
---|---|
CSP(Content Security Policy) (0) | 2021.06.14 |
[WebGoat] CSRF (0) | 2021.06.13 |
CSRF(Cross Site Request Forgery) (0) | 2021.06.13 |
[DVWA] DOM Based XSS (0) | 2021.06.13 |