Code::Security/비박스(BWAPP)

비박스(bWAPP) A6 Text Files (Accounts)

태군 코드 2022. 9. 19. 17:54
반응형

이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.

 

A6 - Text Files (Accounts)

 

개인 정보 및 서버의 중요 정보 데이터가 파일 및 다운로드가 가능하다면 주된 공격 대상이 됩니다.

 

난이도 하

insecure_crypt_storage_2.php

insecure_crypt_storage_2.php 페이지를 살펴보면 로그인이 가능합니다.

 

bee 계정으로 로그인

bee 계정으로 로그인 시 'The account was added!'라는 메시지와 함께 아라에 파일을 다운로드하거나 삭제할 수 있는 링크가 생성이 됩니다.

 

난이도 하 accounts.txt

Download 링크를 클릭하면 계정 정보가 있는 accounts.txt 파일로 이동하고 해당 파일을 확인해 보면 사용자가 입력한 계정 정보가 평문으로 저장되어 있는 것을 확인할 수 있습니다.

 

난이도 중

난이도 중 로그인

난이도 중에서도 사용자의 계정 정보를 입력하고 [Insert] 버튼을 클릭 후에 Download 링크를 확인해 보도록 하겠습니다.

 

난이도 중 accounts.txt

accounts.txt 파일을 확인하면 난이도 하와는 다르게 사용자의 비밀번호를 해시 값으로 출력하는 것을 알 수 있습니다. 해시 함수는 일방향 함수라서 해시 값으로 원문을 찾아내기 힘들지만, 이미 깨진 해시 함수를 사용하거나 salt를 사용하지 않을 경우 원문을 찾아낼 수 있습니다.

 

그럼 먼저 해시 함수의 유형을 살펴보도록 하겠습니다. (https://github.com/blackploit/hash-identifier)

해시 함수 확인

해시 함수를 확인해 보면 SHA-1이라는 것을 알 수 있고 원문 변환 사이트를 통하여 값을 확인해 보도록 하겠습니다.

 

https://crackstation.net/

사용자의 해시 함수를 입력하고 Crack Hashes를 입력하면 원문을 확인할 수 있고, 이미 깨진 함수를 사용하고 있어 민감 데이터 노출에 취약하다는 것을 알 수 있습니다.

 

난이도 상

난이도 상 accounts.txt

 

insecure_crypt_storage_2.php 소스코드

난이도 상에서도 계정 정보를 입력하고 Download 링크를 클릭하고 accounts.txt 페이지를 확인해보면 난이도 하/중 과는 다르게 salt라는 내용이 추가되어 있는 것을 확인할 수 있습니다.

salt는 해시 함수를 더 안전하게 만드는 역할로 난이도 상에서 만들어진 해시 값은 비밀번호와 salt로 사용된 문자열을 합친 해시 값이어서 해시 함수에 사용된 salt값을 모르는 경우 비밀번호를 알아낼 수 없습니다.

 

참고

https://ko.wikipedia.org/wiki/%EC%86%94%ED%8A%B8_(%EC%95%94%ED%98%B8%ED%95%99)

https://github.com/blackploit/hash-identifier

https://www.tunnelsup.com/hash-analyzer/

https://crackstation.net/

반응형