실습 1) 패스워드 크랙으로 패스워드 취약성 확인하기
지난 실습에서 설치한 webgoat를 실행합니다. 실습하는 동안 명령 프롬프트를 닫으면 안 됩니다. 사이트에 들어가서 로그인 하고 [Authentication Flaws]-[Password Strength] 메뉴를 클릭합니다. 그럼 아래 사진과 같은 화면이 뜹니다.

총 6개의 패스워드가 나오는데 화면에서 붉은색으로 된 사이트로 넘어가서 패스워드를 각각 입력합니다.
https://www.security.org/how-secure-is-my-password 사이트에서 진행됩니다. 아래는 앞에 적은 사이트에서 진행한 실습 결과 사진들입니다.






My1stPassword!:Redd 처럼이 아닌 조합의 패스워드는 짧은 시간 내에 공격자가 패스워드를 알아낼 수 있습니다.
위 6개의 패스워드의 크랙 예상 소요 시간을 패스워드 강력도 테스트 준비 화면에 각각 입력하면 패스워드 강력도 결과를 확인할 수 있습니다. 저는 아래 책에 나온 표를 참고하여 입력했고 밑은 그 결과 사진입니다.
| 패스워드 조합 | 크랙 예상 소요 시간 |
| 숫자만으로 구성된 여섯 자리 패스워드 | 0초 |
| 영문 소문자만으로 구성된 일곱 자리 패스워드 | 2초 |
| 영문 소문자와 숫자가 조합된 일곱 자리 패스워드 | 19초 |
| 영문 소문자와 대문자, 숫자가 조합된 여덟 자리 패스워드 | 15시간 |
| 영문 소문자와 대문자, 숫자, 특수문자가 조합된 여덟 자리 패스워드 | 20일 |
| 영문 소문자와 대문자, 숫자, 특수문자가 조합된 열아홉 자리 패스워드 | 3600경 년 |

+) 아래는 SplashData, NordPass에서 발표한 가장 많이 사용되는 쉽게 노출되는 패스워드 top 10 중 세 가지를 입력해서 나온 결과 사진입니다. col123456은 NordPass에서 9위인데 42분 만에 공격자가 알아낼 수 있다 하니 top 10에 속한 패스워드는 하루보다도 빨리 노출될 수 있을 것 같아 위험하다고 생각했습니다.



실습 2) 취약하게 설계된 패스워드 찾기 기능 위험도 분석하기
[Authentication Flaws]-[Forgot Password]를 클릭합니다. 패스워드 찾기 기능을 이용하기 위해 User Name에 우선 webgoat라 입력합니다. 그러면 패스워드를 찾기 위한 질문이 화면에 뜨는데 이번 실습에서는 '좋아하는 색깔'에 대해서 물어보는 것이었습니다. 정상적인 사용자라면 이 질문에 답하고 패스워드에 대한 정보를 얻을 수 있습니다. 이 실습의 답은 red입니다.


하지만 위 실습처럼 '좋아하는 색깔'에 대해 묻고 패스워드 전부를 알려준다면 위험할 것입니다. 색깔은 그 종류가 다양하지만 결국 한정된 것입니다. 공격자가 아무 색깔이나 입력해보고 그중에서 맞는 것을 찾으면 언젠가 패스워드를 알아낼 수 있을 겁니다.
아래는 타인의 패스워드를 탐색하는 경우(공격자)에 대한 실습 사진입니다. 우선 [Forgot Password]를 다시 사용해야 하므로 해당 페이지 상단에 있는 'Restart Lesson'를 클릭해야 합니다. 해당 페이지가 초기 화면으로 된다면 이번에는 User Name에 admin을 입력합니다. 그리고 '좋아하는 색깔'에 대한 답으로 red를 입력합니다. 그랬더니 틀렸다고 뜹니다. 다음으로 yellow를 입력하면 똑같은 결과가 나옵니다. 정답인 green을 입력하게 된다면 admin에 대한 패스워드를 볼 수 있습니다.


'웹 해킹' 카테고리의 다른 글
| Ch 04 SQL 인젝션 공격(실습) (0) | 2023.01.25 |
|---|---|
| Ch 04 SQL 인젝션 공격 (0) | 2023.01.25 |
| Ch 03 인증 기술과 접근 통제 (0) | 2023.01.18 |
| Ch 02 웹 해킹의 기초(실습) (0) | 2023.01.11 |
| Ch 02 웹 해킹의 기초 (0) | 2023.01.11 |