Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
Tags
- System
- backjoon
- Reflected
- beebox
- 와이어샤크
- wireshark
- basicrce3
- 자료구조
- cgroup
- c
- python
- Reversing
- cloud
- pwnable
- 백준
- bWAPP
- htmlinjection
- Linux
- mount
- SISS
- acc
- datastructure
- CodeEngn
- AWS
- Systemhacking
- Dreamhack
- fork-bomb
- EC2
- docker
- 유석종교수님
Archives
- Today
- Total
Ctrl + Shift + ESC
[IT@Security] Web 취약점 12. 약한 문자열 강도 본문
약한 문자열 강도란?
약한 문자열 강도 취약점: 웹 사이트에서 취약한 패스워드로 회원가입이 가능할 경우 공격자는 추측 및 주변 정보를 수집하여 작성한 사전 파일로 대입을 시도하여 사용자 계정을 탈취할 수 있는 취약점
해당 취약점 존재 시 유추가 용이한 계정 및 패스워드의 사용으로 인한 사용자 권한 탈취 위험이 존재하며, 해당 위험을 방지하기 위해 값의 적절성 및 복잡성을 검증하는 로직을 구현하여야 한다.
약한 문자열 강도 점검
| 점검 내용 | 웹페이지 내 로그인 폼 등에 약한 강도의 문자열 사용 여부 점검 |
| 점검 목적 | 유추 가능한 취약한 문자열 사용을 제한하여 계정 및 패스워드 추측 공격을 방지하기 위함 |
| 점검 대상 | 웹 애플리케이션 소스코드 |
1. 웹 사이트 로그인 페이지의 로그인 창에 추측 가능한 계정이나 패스워드를 입력하여 정상적으로 로그인되는지 확인
- 취약한 계정: admin, administrator, manager, guest, test, scott, tomcat, root, user, operator, anonymous 등
- 취약한 패스워드: Abcd, aaaa, 1234, 1111, test, password, public, blank 패스워드, ID와 동일한 패스워드 등
로그인 아이디가 admin - adminadmin@ / abcd - abcdabcd이기 때문에 어느 정도는 추측 가능하나 매우 취약하지는 않은 것으로 판단된다.
이는 mysql 비밀번호 정책에 따라 8글자 이상으로 비밀번호를 지정했기 때문인 것 같다.
또한 개인이 추측 가능한 계정을 사용하지 않도록 주의를 기울여야 한다.
2. 일정 횟수(3~5회) 이상 인증 실패 시 로그인을 제한하는지 확인

로그인을 5회 실패해보았다.

여전히 똑같은 경고창만 나오고 제한은 없는 것을 확인할 수 있었다.
보안 설정 방법
취약한 계정 및 패스워드를 삭제하고, 사용자가 취약한 계정이나 패스워드를 등록하지 못하도록 패스워드 규정이 반영된 체크 로직을 회원가입, 정보변경, 패스워드 변경 등 적용 필요한 페이지에 모두 구현하여야 한다.
로그인 시 패스워드 입력 실패가 일정 횟수(3~5회) 이상 초과할 경우 관리자에게 통보 및 계정 잠금 로직을 추가한다.
규정 예시
- 다음 각 목의 문자 종류 중 2종류 이상을 조합하여 최소 10자리 이상 또는 3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성
- 영문 대문자(26개)
- 영문 소문자(26개)
- 숫자(10개)
- 특수문자(32개)
- 연속적인 숫자나 생일, 전화번호 등 추측하기 쉬운 개인정보 및 아이디와 비슷한 비밀번호는 사용하지 않는 것을 권고
- 비밀번호에 유효기간을 설정하여 반기별 1회 이상 변경
- 최근 사용되었던 패스워드 재사용 금지