처음부터 차근차근

웹 해킹 - 사용자 인증 본문

정보보안

웹 해킹 - 사용자 인증

_soyoung 2022. 4. 13. 10:02
반응형

오늘은 사용자 인증에 대한 웹 해킹에 대하여 공부를 해보았다.

포트

port = 항구

port란 IP 내에서 애플리케이션(또는 프로세스)을 상호 구분을 위해 사용하는 번호이다.

운영 체제 통신의 종단점이라고도 한다.

2000년 중반부터는 거의 모든 시스템이 방화벽으로 보호되어 80번 웹 포트 외에는 모두 닫혀 있는 경우가 많아져 웹 해킹이라는 주제가 많이 연구되고 있다.

 

‘인터넷의 바다’, ‘인터넷 항해’ : 한 시스템의 포트에서 데이터가 출발하여 인터넷이라는 바다를 건너 다른 시스템의 포트에 도달하는 흐름에서 생긴 말

 

 

 

웹 해킹 방법

웹 해킹 방법에는 2가지가 있다.

1. 취약점의 존재 여부를 확인한 후 그곳을 통해침투를 시도하는 방법
2. 발견 가능한 모든 공격 표면을 찾아서 매트릭스를 작성한 후 하나씩 시도하는 방법

 

 

시스템에 침투하는 일반적인 해킹 과정 

<요즘 해킹 동향>

과거에는 해커가 자신의 명성을 높이기 위해 공격에 성공한 후 웹 페이지를 변조하는 경우가 많았지만, 요즘은 흔적을 교묘히 숨기는 경우가 많아졌다.

 

 

OWASP(The Open Web Applicaton Security Project)

OWASP는 웹 애플리케이션 보안에 대한 정보를 공유하고 체계를 세우는 자발적인 온라인 정보 공유 사이트이다.

제일 많이 일어난 해킹 종류를 top10으로 세워서 볼 수 있다.

 

 

WebGoat(서버) 설치

webgoat는 보안이 취약한 서버이다.

그래서 해킹 공부를 할 때 주로 사용하는 서버이다.

 

시작하기에 앞서...

jdk확인

JAVA -version

jdk 버전이 8이상인지 체크한다.

 

<본격적인 설치!>

webgot-container jar 파일있는 경로에서 cmd 킨 다음 

java   -jar   webgoat-container-7.1-exec.jar

위와 같이 입력해서 압축을 푼다.

압축 풀기 성공

브라우저를 통해 Webgot 접속

http://localhost:8080/WebGoat

id : guest, pwd : guest로 로그인

 

로그인 성공

 

서버 포트 변경

서버 포트를 변경해서 다시 서버를 설치한다.

 

jar파일 있는 곳에서 cmd ->

java   -jar   webgoat-container-7.1-exec.jar  -httpPort   포트번호

 

http://localhost:포트번호/WebGoat로 접속

id : guest, pwd : guest로 로그인 -> 로그인 성공

 

 

WebGoat 서버에 사용자 추가

.extract / webapps / WebGoat / WEB-INF / spring-security.xml

로 가서 <user></user>밑에

<user name=“사용자이름" password="패스워드“ authorities="ROLE_WebGoat_USER" />

이렇게 해서 유저를 추가한다.

 

필자는 ksy라는 유저를 추가함

 

 

 

사용자 인증

인증의 취약점

https://www.security.org/how-secure-is-my-password/

 

How Secure Is My Password? | Password Strength Checker

Data breaches and identity theft are on the rise, and the cause is often compromised passwords. After stealing credentials, cybercriminals can use passwords to

www.security.org

인증의 취약성을 알 수 있는 사이트이다.

 

현재 사용하고 있는 패스워드를 입력하면 아래에 얼마만에 뚫리는지 나온다.

 

패스워드는 영문 소문자와 대문자, 숫자, 특수문자를 조합해 복잡하게 만들 수록 안전하다!

참고 사진

 

 

forgot password의 보안 취약성

패스워드를 잊어버렸을 때 '당신이 좋아하는 색깔은?', '당신 어머니의 성함은?' 처럼 물음에 답을 입력하여 비밀 번호를 찾는 기능이 있다.

이러한 패스워드 찾기 기능은 보안적으로 별로 좋지 않다.

당신이 좋아하는 색깔은? 이라고 물어봤을 때 사람이 입력할만한 답이 그렇게 많지 않기 때문이다.

대부분이 하늘색, 빨간색 등 특정한 색을 입력하지, #FFFFFF 같은 16진수 코드를 입력하지 않는다.

 

이러한 forgot password 기능을 이용해서 해킹하는 실습을 해보았다.

webgoat 유저가 좋아하는 색깔을 입력하는 칸에 아무 색이나 넣어보고 그게 맞으면 해킹이 되는 쉬운 실습이다.

해킹 성공

 

 

팀별 실습

먼저 팀원의 컴퓨터 아이피와 서버 포트번호를 알아낸 다음 그 서버에 들어가 자신의 아이디로 로그인을 한다.

(팀원들이 각자의 서버에 모든 팀원을 유저로 미리 추가해놓음 - 나의 유저명 : ksy)

팀원1 서버
팀원2 서버
팀원3 서버

 

그 다음 팀원 서버의 admin 비밀번호를 알아낸다.

forgot password 기능 이용하여 아무 값이나 입력해서 해킹한다.

팀원3 서버 admin 비밀번호 찾기
패스워드 찾기 성공

 

 

 

 

출처 : 정보보안(22-1학기)고수정교수 강의 내용 변형 및 요약

반응형

'정보보안' 카테고리의 다른 글

blind numeric sql injection, xss, concurrency  (0) 2022.04.27
웹해킹- SQL Injection  (2) 2022.04.21
Crack(지뢰게임, music player 리버싱)  (0) 2022.04.10
Crack(코드우회)  (0) 2022.03.31
리버싱과 어셈블리어  (0) 2022.03.27
Comments