모의해킹 실습 - WebGoat / Secure Passwords

이태현·2026년 3월 19일

모의해킹

목록 보기
17/19
post-thumbnail

Secure Passwords

첫 번째 문제 - How long could it take to brute force your password?

첫 번째 문제를 번역기로 해석해 보니
비밀번호를 무차별 대입하는 데 얼마나 걸릴 수 있나요?
이 과제에서는 충분히 강한 비밀번호를 입력해야 합니다 (최소 4/4 이상).

이 과제를 완료한 후에는 아래에서 몇 가지 비밀번호를 사용하여 왜 좋은 선택이 아닌지 확인하는 것이 좋습니다:

  • password
  • johnsmith
  • 2018/10/4
  • 1992home
  • abcabc
  • fffget
  • poiuz
  • @dmin

요약
1. 비밀번호의 강도와 브루트 포스(무작위 대입 공격)에 걸리는 시간을 확인해 보는 것이 핵심
2. 강력한 비밀번호를 만들어서 4점 만에 4점을 받으세요.

Step 1 - 취약한 비밀번호

문제를 확인해 보니
이번 문제는 취약한 비밀번호에 대해서 알려주는 문제입니다. 위에 예시들은 우리가 JWT Cracking 때 시도했던 사전 대입 공격으로 충분히 탈취할 수 있는 쉬운 비밀번호로 날짜, 시간, 이름, 연속되는 문자, 짧은 단어 등등 이러한 특징들은 쉽게 공격에 당할 수 있다. 이번에는 필자가 간단한 비밀번호를 입력한 후 해당 비밀번호가 얼마나 취약하고 탈취당하는 데 시간이 얼마나 걸리는지에 대해서 위에 사진과같이 알 수 있습니다. 반복되는 문자를 입력하면 아래 메시지로 비밀번호 설정에 실패했다고 나오며 해커가 얼마 만에 알아낼 수 있는지 그 수치들을 알 수 있습니다. testtest를 입력했을 때는 4점 만점에 0점을 기록하였고, 해커는 189번 시도 만에 비밀번호를 알아냈으면 공격에 걸린 시간은 단 18초밖에 걸리지 않았습니다.

Step 2 - 비교적 안전한 비밀번호

이번에는 2개를 조합한 패턴(영문+숫자)을 준수한 ilovehacking123 비밀번호를 입력 칸에 입력하고 제출을 해보았습니다. 바로 전 중복되는 단어만 조합하여 만든 비밀번호와 다르게 이번에는 보안성이 높고 해당 비밀번호에 9107258800번 시도를 하였으며 비밀번호를 풀 때까지 걸리는 시간이 무려 28년이 걸립니다. 하지만 아직 4점 만점을 받은 건 아니니 좀 더 어렵게 만들어 봐야겠습니다.

결과

이번에는 3개를 조합한 패턴(영문+숫자+특수문자)을 준수한 webhacking123# 비밀번호를 입력 칸에 입력하고 제출을 해보았습니다. 드디어 4점만을 받았습니다. 무려 357460000000번을 시도했으며 알아내는 데 걸리는 시간은 1133년이 걸립니다. 사실상 살아있는 동안 무적의 비밀번호 같습니다. 이처럼 3가지 패턴을 여러 가지 조합하는 것만으로도 높은 보안성의 비밀번호를 설정할 수 있습니다. 하지만 여전히 방심하면 안 됩니다. 점점 공격 기술이 발전함에 따라 비밀번호를 알아내는 데 걸리는 시간은 줄어들 것이기 때문입니다.

마무리

이번 실습에서는 안전한 비밀번호를 설정하기 위해서는 어떻게 비밀번호를 구성해야 하는지 알아봤습니다.

profile
이해하고 분석하고 지배한다

0개의 댓글