일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #webhacking #모의해킹 #웹해킹
- #DVWA #XSS #Stored XSS #웹해킹 #모의해킹
- bugcamp
- bugbounty
- 해킹존
- #DVWA #CSRF #웹해킹 #모의해킹
- hackingzone
- 버그바운티
- #bWAPP #모의해킹 #웹해킹
- 삼성SDS
- zerowhale
- Today
- Total
AIAS
[DVWA] CSRF (Level - Low, Medium) 본문
CSRF ? (CSRF, Cross Site Request Forgery)
CSRF는 악성 스크립트를 공격자가 실행 시키는 것이 아닌 타 사용자로부터 서버에 Request를 하게하여 공격자가 원한는 상황이 발생하게 하는 것이다.
즉, 공격자 수행하지 못하는 행위를 자신보다 높은 권한을 가진 계정(ex.관리자)에게 강제로 수행하게 하는 악성 스크립트를 실행시켜 피해자가 의도치않게 공격자 대신 서버에 요청해주어 정보 유출, 계정 탈취 등의 피해를 입게 된다.
실습환경
- DVWA(Damn Vulnerable Web Application)
: 모의해킹 실습이 가능한 PHP기반의 환경
CSRF (Level - Low)
패스워드 변경 시 현재 비밀번호를 확인하지 않고 있으며, 프록시 툴로 패스워드 변경 요청 값을 중간에서 잡아본 결과 GET으로 요청하기 때문에 URL 값만으로도 CSRF 공격을 시도할 수 있음
타 사용자에게 패스워드 변경 요청하는 GET Request URL 값에 접속하게되면 해당 계정의 패스워드가 TEST123으로 변경되므로 다른 사용자가 해당 URL에 접속하여 패스워드가 변경되도록 HTML 이벤트 핸들러를 통한 XSS 시도
: <img src="x" onerror='this.src="http://172.30.1.7/vulnerabilities/csrf/?password_new=TEST123&password_conf=TEST123&Change=Change"'>
잘못된 이미지 경로를 지정하여 에러를 발생하게하고 에러 발생 시 사용자 패스워드 변경 시키는 URL을 강제 Request 시키는 코드를 통해 XSS 취약점이 존재하는 페이지에 접속 시 마다 패스워드가 변경됨
CSRF (Level - Medium)
Medium 레벨의 CSRF 페이지 View Source를 확인해보니 그전에 없던 server name과 Referer를 체크하고 있음
Referer 요청한 페이지 이전에 접속해있던 페이지 URL를 확인하는 것인데 프록시로 추가/수정/삭제가 가능하기 부적절한 대응방안이다.
이전 방식은는 단순히 URL만으로 감염 시켰다면 이제는 Referer를 확인하는 소스코드 추가되어 Referer가 포함된 코드를 클릭하게 하거나 사전에 작성해둔 코드가 실행되게해야하는 수고가 늘었을 뿐이다.
Low에서 사용한 XSS 방식을 사용하면 접속한 페이지에서 패스워드 변경 요청을 하게되어 이전 방식의 취약점은 여전히 존재하며 동일한 방법으로 Name 필드에 XSS 코드를 삽입해주었다.
(DB에서 해당 길이의 값을 받지 못하는 것 같아 단축 URL을 사용하여 코드 길이를 줄여서 입력)
: <img src="http://asq.kr/RGQQXKMuyErhy" onerror=alert("CSRF_TEST")>
대응 방안
- 패스워드 변경 시, 사용자의 현재 비밀번호 확인 또는 2차 인증 수단 등의 본인 인증 확인 절차 필요
'WEB > DVWA' 카테고리의 다른 글
[DVWA] Stored XSS (Level - High) (0) | 2020.12.01 |
---|---|
[DVWA] Stored XSS (Level - Medium) (0) | 2020.12.01 |
[DVWA] Stored XSS (Level - Low) (0) | 2020.12.01 |