[모의해킹/취약점분석] 취약한 접근 제어 (Broken Access Control)

SECURITY/모의해킹 취약점분석 / /
반응형

 

 

모의해킹 취약한 접근제어 사례

 

 

 

1. 점검 개요


대상 : abcdef 대표 서비스 모의해킹 수행


www.abcdef.com, api.abcdef.com, aaaa.abcdef.com, 
help.abcdef.com aa.abcdef.com, bbbb.abcdef.com, caaa.abcdef.com 
(이외 abcdef 서비스 관련 url 다수)

 


2. 취약점 분석 결과 요약


1. abcdef 서비스 개인정보 password 변경 페이지 취약
2. abcdef 서비스 개인정보 사진(file) 파일 업로드 페이지 취약
3. 고객센터 (help) 페이지 취약 (20여개 취약점)
4. 특정 페이지 중요 정보 노출
5. 외부 노출 불필요 페이지 다수 존재

OWASP TOP 10 취약 항목에 해당됨

 

A01: Broken Access Control (취약한 접근 제어: 권한/인가)

A06: Vulnerable and Outdated Components (취약하고 지원이 종료된 구성 요소)

 

 

3. 점검 상세 내용


1) abcdef 서비스 개인정보 password 변경 페이지 취약


로그인 과정 없이(API Token 정보 없이) URL 호출로 사용자 정보 노출 상태 
예) https://api.abcdef.com/.../member/...?site_user=abcd@abcdef.com
   


- 계정(email ID)을 알고 있다면 모든 사용자 패스워드 변경 가능 
- 패스워드 변경전 (site_password = 1d907c5671…..)


- 패스워드 임으로 변경 완료

- 200 ok code (PUT Method request 정상) 성공

패스워드 임으로 변경됨


- 패스워드 변경 확인 (site_password = f2476b273d1…..) 

임의 변경된 패스워드 확인



* 취약점 분석 요약

 

  • Email ID만 알고 있으면 모든 사용자 정보
  • Email ID만 알고 있으면 모든 사용자 정보
  • site_id, site_pasword, site_member_num 웹 노출  
    Password 는 SHA256 으로 암호화 되어 있으나, salt 키나 security key 조합이 없다면 유추가능 
  • 현재 패스워드 암호화 과정은 단순 SHA256 hash는 아닌것으로 추정됨 
  • 패스워드 업데이트 가능 -> 악의 적인 목적으로 모든 사용자 사이트 로그인
  • 불가 상태로 만들수 있는 리스크 존재


2) abcdef 서비스 개인정보 페이지 파일 업로드 취약점


web proxy 프로그램 사용으로 이미지파일 외 (jpg,png,gif)

악성 코드 파일 (html,sh,js,jsp등)  업로드 가능

- 확장자 변경 후 ->  업로드 가능

악성파일 업로드


 
- 파일 업로드 위치 경로 확인


- 업로드 된 html 파일 url 호출 화면 (악성 파일 업로드 가능)

악성 파일 업로드

 

* 취약점 분석 요약

 

  • 업로드시 파일 확장자 변경으로 악성 코드 .html 파일 업로드 가능
    이외 .sh .py .jsp 코드등은 업로드는 되는 상태이나 단순 nginx 웹서버 실행중이므로
    url 호출시 실행은 불가 
  • CGI, Tomcat, nodejs 등 서버에서 실행중이라면 다른 확장자 스크립트도 실행가능
    예) reverse_connection 가능, 서버 shell 권한 획득 가능
  • 현재 악의 적인 목적으로 .html 파일에 업로드 후 악성 코드 유포지로 활용 가능
    예) html 로 피싱 사이트 만들어서 업로드 -> 악성코드 삽입 -> 


기타 다른 사이트 게시판에 link -> iframe 형태의 clickjacking 사이트로 위장 가능

 


3) 고객센터 (help) 페이지 취약 / wordpress 사용중



- 사용중인 wordpress 버전 취약점 20여개 존재   

wordpress 취약점


- “관리자” 계정 및 관리자 권한 탈취 가능 
 http://help.abcdef.com/wp-login.php

계정 탈취

- 로그인 가능 (xxxadmin / xxxadmin )

로그인 화면


- 계정 정보 확인 가능 및 관리자 페이지 접속 성공
- DB Password 정보 페이지 


- “web shell” hacking code upload 가능 / metasploit webshell upload success

metasploit webshell upload

 

* 취약점 분석 요약

 

  • Wordpress 오픈 소스 특성상 현재 사용중인 버전의 취약성 다수 존재
  • 관리자 권한(계정) 탈취 가능 -> 모든 사이트 페이지 변조 가능 (악성코드 삽입등)
  • 관리자로 로그인후 새로운 계정(관리자 권한) 생성 가능
  • 게시판 내용에 악성 스크립트 난독화 형태로 삽입 가능
  • web shell 업로드 가능 상태 
  • Reverse_tcp 는 다행히 outbound 통신 되지 않는 상태
  • 외부에 불필요하게 노출되어 있는 페이지 존재 (php source download 가능)
  • 예) wget --no-check-certificate https://help.abcdef.com/xxxxxOnline.php
       wget –r --no-check-certificate https://help.abcdef.com/wp-includes

 

 

 

4) 특정 페이지 중요 정보 노출



로그인 id , password, DB 이름, DB 스키마, DB 서버 IP, Port 등 

dbuser007 / xxxxxx
xxxxxxx_bank  (DB명)
xxxxxxx (스키마)
10.1x.x.x (DB IP)
xxxx (DB port)
 

DB 계정 정보, 스키마 정보, DB IP, PORT 정보 노출


* 취약점 분석 요약

 

  • 악의적 목적 사용자가 알아 보기 어렵도록 data 에 대한 encryption (암호화) 필요
  • REST API 형태의 서비스이므로 중요 민감 정보는 제외
  • 실제 json data body size 만 커짐 (동접이 늘어나면 성능 이슈 발생 여지)
  • 페이지별 HTTP Method allow(허용) 에 대한 GET,PUT,DELETE,POST 등 수시 점검

 


3. 점검 결과


 불특정 다수 가입자 기반 Portal 서비스 기준으로 모의해킹후 결과 도출
(예: naver.com / 누구나 가입할수 있는 Portal 서비스)


1) 로그인 과정 없이(token 미인증) 개인 정보 페이지 노출 상태
   회원 가입 후 기타 다른 사용자 password 변경 가능 
   악의적 목적으로 로그인 불가 상태로 만들수있음
   Brute force 형태의 계정에 대한 공격 가능

 

2) 개인정보 페이지 “사진 파일 업로드” 취약점 

   업로드 파일 확장자 필터 우회 가능)
   악성 코드 업로드 가능, 
   악성 코드 유포지로 활용가능


3) 고객센터 페이지 “관리자” 권한 획득 가능 (wordpress 사용)
   web shell 업로드 가능
   관리자 권한 탈취 가능 상태 -> 악의적인 목적으로 다양하게 사용될수 있는 상태
   이외 20여개 취약점 존재 (예: 특정 plugin source 취약점 등)

 

4) 특정 중요 페이지 DB 정보, 계정 정보등 민감한 data 노출 
   

 

4. 권고 사항 및 조치 


1) 외부에서 인증 과정 없이 접속 불가능하게 취약 URL (개인정보 페이지 등)에 대한 전수 조사


2) 개인정보 수정 페이지 -> 패스워드 변경시 2차 검증 등의 추가 개발 로직 필요


3) 파일 업로드 소스  시큐어 코딩 필요
   현재 업로드시 파일명 자동 변경 -> 파일명 자체를 .sh .html .jsp 등 확장자 변경 가능

   파일명 “html” -> 예: samplefile.html


4) 고객센터 페이지(wordpress) 버전 업그레이드 및 취약성 제거
   관리자 로그인 페이지 -> 특정 IP 대역만 허용
   관리자 계정 -> 추측하기 어려운 패스워드로 변경


5) 외부 노출 불필요 페이지 전수 조사후 제거 
   Nginx 등 directory listing 환경 설정 수정 검토
   Django 프레임워크 debug true 값 변경 (개발서버)
   부득이하게 노출 필요시 인증 프로세스 구현

 


기타 참고사항


1) 현재 서비스 개발중인 미완성 페이지에 대해서도 점검 필요
   XSS, CSRF, SQL Injection 등의 취약성 점검필요


2) REST API 기반 서비스 특성상 HTTP Method (GET,PUT,DELETE,POST 등) Allow

   페이지에 대한 brute force 형태 공격 차단 필요 
   단, 일반적인 정상 패턴으로 들어오는 공격은 차단 불가
   예, burp suite, ZAP Proxy 프로그램 사용 -> 파라미터 값 변조, 무작위 대입법

 

3) abcdef 상단 보안 장비 IPS 기능 및 웹 방화벽 활용 및 수시 점검 필요

 

4) 보안 장비 외 서비스 개발 로직 에서의 보안 리스크 대한 수시 점검 필요
   1차적으로 패턴(시그니처) 기반으로 보안 장비(IPS,WAF등)에서 방어가 가능하지만,
   대부분의 공격 형태는 서비스(개발 로직) 취약점을 통한 방법이 대부분임

 

5) 보안적 측면 외 특정 페이지 (예: xxx 신용카드 조회등 ) 성능 이슈 부분도 
   점검 필요

   악의적 목적의 DOS성 공격 형태로 서비스에 악영향 미칠 가능성 존재

 

 


 

본 포스팅은 실제 모의해킹/취약점 분석 사례를 기반으로 작성되었으며

취약점에 대해 모든 보완 조치가 완료된 상태입니다.
민감 정보는 모두 마스킹(가림처리) 처리로 대상 조직에 어떠한 불이익도 없음을 명시합니다.

사이버 보안 업계 종사자나 보안 꿈나무들에게 조금이나마 도움이 되고자 작성한 글이며
악의적, 상업적 용도의 사용 및 가공은 자제 부탁드립니다.

 

 

 

 

 

모의해킹 / 취약점 분석 사례 더보기

 

 

'SECURITY/모의해킹 취약점분석' 카테고리의 글 목록

해킹 보안 시스템 운영 등 실무 경험을 토대로 지식 공유와 나눔으로 상생의 가치 실현

rootkey.tistory.com

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기