시나리오 기반 모의 해킹[Project]

Ate1es
Pri_mates
Published in
4 min readMay 21, 2021

K-Shield Junior 6기를 진행하면서, 마지막 과정인 프로젝트를 마치며 프로젝트 수행 결과를 정리하려 한다.

우리 팀은 모의 해킹 팀으로, 제공되는 웹 서버에 대해서 취약점 분석 및 대응 방안, 보안 솔루션 도출 등을 맡았다.

내가 처음 구상한 시나리오의 개요는 위 그림과 같다. 공격자는 SQL INJECTION을 통해 관리자 ID, PASSWORD를 알아내어 관리자 페이지로 접속.

그 다음 공지사항 작성 기능을 이용하여, 사용자들을 자신의 피싱 페이지로 유도하는 것이다.

파일 다운로드를 요청하는 패킷

처음 난 주어진 웹페이지의 기능을 하나하나 써보던 중, 공지사항에 첨부된 파일을 다운로드하다가 /_core 라는 경로를 발견했다.

해당 경로로 디렉터리 인덱싱 취약점을 확인해봤는데,

디렉터리 인덱싱 취약점 확인

위와 같이 디렉터리 인덱싱 취약점이 발견되었다. 모든 디렉터리의 이름앞에 _(언더바)가 붙어있는 규칙을 발견하고, 관리자 페이지가 따로 존재하는지 경로에 /_admin을 시도했다.

관리자 페이지 노출

일반 사용자의 로그인이 아닌, 관리자 페이지가 노출되었다. 이제 공격자는 관리자 ID, PASSWORD만 알아낸다면 관리자로 로그인이 가능하다.

공격자는 웹페이지에 SQL 취약점이 존재하는지 탐색하던 중 검색어 입력 폼에 SQL Error가 반환 되는 것을 확인했다.

공지사항 검색어 입력 폼에 SQL INEJCTION 발생

공격자는 SQLMAP 도구를 사용해, 해당 웹 서버의 데이터베이스를 가져올 수 있다.

SQLMAP을 사용하여, 관리자 ID, PASSWORD 노출

관리자 패스워드는 MD5 HASH로 암호화되어 있었기 때문에, 복호화가 가능했다.

공격자는 탈취한 관리자 ID, PASSWORD로 관리자 권한으로 로그인을 한다.

관리자 페이지 로그인 후 공지사항 기능 악용

공격자는 탈취한 권한으로 관리자 페이지 로그인 후, 사용자들이 열람할만한 제목으로 공지사항을 작성한다.

그리고 해당 공지사항에 존재하는 XSS취약점을 이용하여, 자신의 피싱 사이트로 유도한다.

가짜 로그인 폼

사용자들은 해당 공지사항을 열람 후 , 위의 사진과 같은 가짜 로그인 폼으로 유도된다. [너무 감쪽같다, 나도 속았다]

사용된 취약점.

  1. 관리자 페이지 노출
  2. SQL INJECTION
  3. XSS + CSRF(다른 시나리오에 사용)
  4. 디렉터리 인덱싱

이상, 모의 해킹 프로젝트의 침투 부분 정리를 마친다.

--

--