hacking study/인증, 인가

정보보안 스터디 - 13주차 3일 - 인증/인가 차이점

wonder12 2023. 1. 8. 01:54

☞ 인증/인가 차이점

 

주평기반의 기준을 통해

인증/인가 차이점의 구분을 확실히 합니다.

 

인증이란 나임을 확인하는 것입니다.

인가란 권한이 있다면 기능을 할 수 있도록 허용하는 것입니다.

 

인증 취약점이란 나임을 확인하지 않아도, 또는 인증 단계를 뛰어넘어서 기능에 접근할 수 있는 취약점입니다.

인가 취약점이란 권한이 없어도 제한된 기능에 접근이 가능한 취약점입니다. 즉 세션점검을 안한다는 뜻입니다.

 

확인해야할 점

인증 취약점: 정보변경 등을 할 때 기존 비밀번호(+ OTP번호 등 2차비밀번호)을 입력하도록 관리하는지 확인하고, 또 그 인증 절차를 뛰어넘을 수 있는지 확인합니다.

ex)  정보수정 (비번 변경, 주소 변경, 이름 변경) 을 할 때 기존 비밀번호가 필요하겠고, 글 수정, 삭제, 비밀글 읽기도 기존 비밀번호를 확인해야합니다.

 

인가 취약점: 아무나 기능을 할 수 없도록 서버측에서 세션 검증을 하는지 확인합니다.

ex)세션 검증을 안해서 실제로 로그인을 안해도 유저의 이름, 주소, 비번 변경할 수도 있습니다. 또 글 수정, 삭제, 글 읽기 에도 세션검증이 필요합니다.

 

사실 이런 예시들이 중복되는 것들이 많기 때문에 인증, 인가 취약점의 차이점을 헷갈릴 수 있습니다.

중복될 수 있음을 이해합니다.

 

 

 

 아파치 서버 설정파일

디렉토리 인덱싱이 기본으로 설정되는데

설정해놓은경우 index.php 또는 index.html 메인 페이지가 없을 경우

디렉토리 리스팅, 즉 업로드된 파일과 서버의 경로를 확인할 수 있습니다. 

또한 intitle:"Index of" 구글 검색이 가능하기 때문에 서버가 취약해질 수 있습니다. 

 

대응은

xampp/apache/conf/httpd.conf

설정파일에서 Options설정을 주석처리해줍니다.

403 permission 접근허용으로 처리된 것을 확인할 수 있습니다.

 

그 외로도 서버 설정을(변수) 변경해서 다양한 적용을 시킬 수 있다는 점입니다.

RewriteEngine On: localhost/index.php?data=test라는 형식을 localhost/index/test라는 식으로 디렉토리 구조처럼 변환시켜 주는 구문입니다.

Options MultiViews: localhost에 접속했을 때 처음에는 index.php를 찾지만, 없으면 index.html를 찾는 형태입니다.

 

 

 

.htaccess 설정

.htaccess 도 서버설정인데 설정을 변경해서 많은 것을 할 수 있습니다.

디렉토리를 만들고 권한을 준 뒤

php engine off를 하면 해당 디렉토리에서는 파일의 php가 실행되지 않습니다.

 

 

 

 

 모의해킹 과정

모의해킹 할 때 

목적 > 체크리스트로 점검 > 주평기반 취약점 평가 28항목 상세점검

순으로 합니다.

 

 본인만의 기준으로 체크리스트를 만드는데

체크리스트

SQL
로그인
검색창
마이페이지 등
union
' or 1=1 # 가능 여부
' union 1,2 # 가능 여부
error
' and updatexml(null,concat(0x3a,(database())),null) and 1=1 # 가능 여부
blind
' and 1=1 and ascii(substr(database(),1))>100 가능 여부
를 빠르게 확인합니다.
XSS
stored
게시판1 : 파라미터- 내용,이름 > CSRF 가능
reflected
게시판2: 파라미터- 글번호
검색창:파라미터- all
글읽기: 파라미터- 글번호
CSRF
Stored XSS 이름 > 회원정보수정(비번변경, 주소, 이름 변경), 글, 수정 수정가능 등
파일업로드
파일인클루드
파일다운로드
인증/인가
권한 필요한 곳 중 자바스크립트가 뜨는 곳
개발실수된 곳 있는지(세션 검증 안하는 곳)
로그인없이 글 수정, 삭제 가능한지
로그인 없이 유저정보 변경가능한지
그 외로 로그인 없이 가능한 게 있는지
게싱예측공격
글 번호 수정으로 비밀글 확인가능한지
주석 처리 되어있는 곳 있는지
디렉토리 인덱싱 되는지
보이지 않는 다른 취약한 페이지가 있는지

사소한 곳도 놓치지 않고 확인합니다.