■ 개요
- 중요정보 페이지에 대한 인증 절차가 불충분하여 권한이 없는 사용자가 중요정보 페이지에 접근하여 정보를 유출하거나 변조 등을 할 수 있는 취약점
- 이를 통해 디페이스(Deface) 공격, 상품 결제 금액 조작, 관리자 권한 악용 등을 할 수 있다.
- OWASP TOP 10 2021에서는 A07(Identification and Authentication Failures)에 해당
- 주요정보통신기반시설 취약점 진단 기준으로 13. 불충분한 인증에 해당

■ 불충분한 인증 시나리오
- 다른 사용자 게시물 수정 및 삭제 등이 가능한가?
- 다른 사용자 개인정보 수정 페이지에 접근 가능한가?
- 클라이언트에서 동작하는 자바스크립트를 우회하여 현재 권한으로 할 수 없는 업무를 수행할 수 있는가?
- 쇼핑몰의 경우, 상품 결제 금액을 조작하여 구매할 수 있는가?
■ 사전 지식
□ 불충분한 인가, 불충분한 인증 차이
① 불충분한 인증
- 불충분한 인증은 회원 가입 우회 또는 다른 사용자가 작성한 게시글 등을 변조/삭제 등이 가능한 취약점
Ex) 다른 사용자가 작성한 게시글을 파라미터 변조 등을 통해 수정/삭제 가능

② 불충분한 인가
- 불충분한 인가는 잘못된 권한을 부여하여 인가받지 못한 사용자가 접근이 가능한 취약점
Ex) 인가받지 못한 사용자가 관리자 페이지에 접근

■ 불충분한 인증 실습 환경
- Kali Linux
- GMShop[보안 프로젝트 교육에서 제공]
조정원 대표님이 만든 보안 프로젝트 교육에서 제공해주고 있으며, 다양한 실습환경 및 많은 교육자료들을 제공.
■ 불충분한 인증 실습1[파라미터를 변조하여 타인이 작성한 게시글 수정]
Step 1) 희생자가 자료게시판에 글 작성 및 게시글 비밀번호 설정


Step 2) 공격자가 희생자 게시글을 수정하려고 시도해보지만, 게시글 비밀번호를 알지 못하여 수정 불가 확인.

Step 3) 웹 프록시를 사용하여 게시글 수정 시 사용하는 모듈을 확인 후, Victim이 작성한 게시글 ID(idx=147)로 파라미터 변조 진행 시, Victim이 설정한 비밀번호를 알지 못해도 게시글 작성 가능 확인





■ 불충분한 인증 실습2[자바스크립트를 우회하여 회원가입 진행]
Step 1) 회원가입 과정에서 필수 항목을 기입하지 않고 가입 진행 시, 회원가입이 불가능함을 확인

Step 2) 회원가입하는 과정에서 응답값 내 자바스크립트 중에서 이름을 공백으로 기재했는지 체크하는 조건문을 삭제 후 forwarding 진행. 이름을 제외하고 진행 시 정상적으로 회원가입이 됨을 확인




■ 불충분한 인증 점검 방법
① 수동 점검
- 웹 프록시 도구를 통해 파라미터를 변조하여 관리자만 수정 및 삭제 가능한 페이지가 변경이 되는지 확인

■ 대응 방안
1. RBAC(Role Based Access Control, 역할기반 접근제어)모델 도입하여 사용자 역할을 기반으로 권한 부여하도록 개발

2. 시큐어 코딩을 통해 다른 사용자 게시물 수정 가능 제한
<?
include "head.php";
$dataArr = Decode64($data);
$view_row = $MySQL->fetch_array("select *from bbs_data where idx=$dataArr[idx] limit 1");
if($_SESSION['SITE_USERID']!=$view_row[userid])
{
OnlyMsgView("잘못된 접근입니다.");
ReFresh("board_view.php");
exit;
}
?>
'모의해킹&웹취약점진단 > 주•통기반 웹 취약점 점검' 카테고리의 다른 글
| 23. 파일 다운로드 취약점 & 25. 경로 추적 (2) | 2023.12.05 |
|---|---|
| 11. XSS(크로스 사이트 스크립팅) 취약점 (0) | 2023.12.04 |
| 09. 정보 누출 (2) | 2023.12.01 |
| 07. XPath 인젝션 (0) | 2023.10.19 |
| 05. SQL Injection (1) | 2023.10.19 |