1. Password Strength


비밀번호 보안강도를 알아보는 단순한 작업이다.

http://www.cnlab.ch/codecheck/check.php

 



2. Forgot Password


패스워드를 찾는 용도로 일반적으로 사용되는 질문답 형식의 인증의 결함을 알아낸다.

아이디 역시 최대한 복잡하게 만드는 것이 좋다. 하지만 유저가 쉽게 기억하기 어렵기 때문에 일반적으로 소문자,대문자,숫자를 섞어서 나열하는 방법으로 보안을 강화한다. 하지만 보안이 취약한 사이트의 경우 admin과 같은 계정을 사용하는경우가 많다.

 

만약 존재하는 사용자 ID이면 "좋아하는 색상이 무엇인가?" 와 같은 질문을 통해 사용자를 검증하려고 한다. 이 경우는 색상을 순서대로 대입해 보면 쉽게 답을 유추할 수 있다.

 


3. Basic Authentication


기본 인증은 서버의 자원을 보호하기 위해 사용한다. 만약 사용자가 허가되지 않은 자원에 접근하려고 하면 401 상태코드를 보여주며 브라우저로 인증이 필요하다는 것을 알려준다.

사용자가 브라우저가 제공하는 양식을 사용하여 사용자이름과 패스워드를 입력하면, 브라우저는 Base64방식의 인코딩을 통해 입력데이터를 변환한 후 http요청의"Authorization" 헤더에 담아서 서버에 전송한다. 

서버는 입력된 문자열을 읽어서 ACL기반의 보안 확인작업을 수행하여 사용자의 권한을 체크한다.  이렇게 한번 인증이 이루어 지면 사용자 로그인 정보를 받지 않게 하기 위해 브라우저는 " Authorization" 헤더를 매 요청마다 서버에 전송해 주게 된다.

 

webscarab으로 request와 response 패킷을 인터셉트한다.

 

Authorization 쿠키값을 복사하여 encoder를 이용하여 from Base64로 디코딩하여 사용자명과 패스워드를 확인할 수 있다.


 

4. Multi Level Login


멀티 레벨 로그인은 강력한 인증체계가 요구되는 경우에 이름과 패스워드를 입력하는 1차적인 인증후에 다른 종류의 인증방법을 사용하여 사용자확인을 여러단계로 나누어 하는 것을 의미한다.

일반적으로 온라인뱅킹 같은 경우 거래 인증코드 TAN(Transaction Authentication Number)를 사용자 인증의 한 방법으로 사용하고 있다.  TAN은 우리나라의 경우 보안카드에 해당한다.

 

Multi Level Login 1

정상적인 방법으로 사용한 TAN코드를 헤더의 파라미터 수정을 통해 재사용하는 것이 목표이다.

 

[해답]

첫번째 단계에서는 Jane, tarzan으로 로그인하고, TAN #1값을 입력하고 전송한다.

두번째 단계에서는 Jane, tazan으로 로그인하고 TAN #2의 값을 넣어야 하는데 없다.

그러면 두번째 요청을 TamperData로 잡아서 POST의 파라메터값으로 전달되는 hidden_tan 값을 1으로 수정하여 전송한다.  로그인 OK

 

 

Multi Level Login 2

다른사용자로 인증한 후 , Jane으로 로그인한것과 같이 속이는 방법이다.


[해답]

정상적인 방법으로 Joe:banana 로 로그인을 한다.

TAN을 입력하는 요청 데이터를 TamperData로 잡아서 Joe를 Jane으로 변경해서 전송하면

Jane에 대한 계좌 정보가 출력 된다.

 


OWASP WebGoat: Authentication Flaws 솔루션 비디오 보기

  • Web applications frequently provide their users the ability to retrieve a forgotten password. Unfortunately, many web applications fail to implement the mechanism properly. The information required to verify the identity of the user is often overly simplistic. Basic Authentication is used to protect server side resources. The web server will send a 401 authentication request with the response for the requested resource. The client side browser will then prompt the user for a user name and password using a browser supplied dialog box. The browser will base64 encode the user name and password and send those credentials back to the web server. The web server will then validate the credentials and return the requested resource if the credentials are correct. These credentials are automatically resent for each page protected with this mechanism without requiring the user to enter their credentials again. 
    Size: 3.13 MB 

[참조] 쿠키에 대해 제대로 알고 사용하자  http://blog.daum.net/ourgony/7609504

'보안 > 웹 해킹/보안' 카테고리의 다른 글

[WebGoat 5.4-06] Code Quality  (0) 2013.04.07
[WebGoat 5.4-05] Buffer Overflows  (0) 2013.04.07
[WebGoat 5.4-04] Authentication Flaws  (0) 2013.04.07
[WebGoat 5.4-03] Ajax Security  (0) 2013.04.07
[WebGoat 5.4-02] Access Control Flaws  (0) 2013.04.07
자동 소스 코드 진단 도구  (0) 2013.04.01
블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

티스토리 툴바