Client-Side 측 코드 분석 자동화 도구¶
github: https://github.com/piroim/site-scanner
⚙️ [site_scanner] 최신 개발 정보
- Release & Update Summary
| Version | Date | Status | Link |
|---|---|---|---|
v1.4.0 |
2026.04.07 | ✅ 배포완료 | https://github.com/piroim/site-scanner/releases/tag/v1.4.0 |
1. 개요¶
자동화 도구를 개발하게된 계기는, 모의해킹 수행 과정에서 클라이언트 측 소스코드 분석이 필요한 경우가 많았으며 많은 코드를 전부 수동 점검하기에는 리소스가 많이 들었습니다.
효율적으로 점검하는 방식이 필요하여 도구의 필요성을 느끼게 되었습니다.
JS/HTML 등 클라이언트 측 코드에 노출된 정보를 이용하거나 취약점으로 발생는 경우도 많이 있고, 코드에서 발견될 수 있는 부분들은 다음과 같습니다.
- 접근할 수 있는 API/PATH
- 하드코딩된 데이터(아이디, 비밀번호, 토큰 등)
- 주석으로 처리한 데이터에 작성된 중요 정보
1.1. 수동 분석의 한계¶
실제 웹 서비스들을 대상으로 점검하게 되면 시간 제약이 있고, 대상 서비스의 규모에 따라 분석해야 할 페이지와 리소스가 늘어나게 됩니다.
서비스 대상들마다 개발자 도구를 열어서 elements탭과 source탭을 오가는 작업과 전체 코드를 검색하고 찾아가는 방식이 조금은 효율적이지 않다고 느끼게 되었고, 불필요한 파일 및 코드까지 확인해야 하기 때문에 리소스의 낭비가 발생한다고 생각했습니다.
특히 다음과 같은 상황에서 수동 분석의 한계가 드러나는 것 같습니다.
- 페이지마다 사용하고 있는
input,form action,href,data속성들을 하나씩 확인하는 반복 작업 - HTML 주석에 남겨진 개발 메모나 임시 코드를 놓치는 경우
- 점검 범위가 넓을수록 누락 가능성 증가
이러한 반복 작업을 자동화하면 분석 시간을 단축하고 놓치기 쉬운 정보를 체계적으로 수집할 수 있습니다.
2. 사용 가능한 기능¶
site-scanner는 대상 URL의 HTML을 파싱하여 태그와 패턴 기반으로 유의미한 정보를 추출하고, 발견된 경로에 대한 접근 가능 여부를 확인해준다.
현재 수집 가능한 정보¶
| 카테고리 | 수집 대상 |
|---|---|
| 링크 및 경로 | a, form, script 태그에 작성된 src와 ajax |
| 폼 데이터 | input/select/textarea의 name, id 속성 (매개변수 식별) |
| 메타 정보 | meta 태그, HTML 주석, data-* 커스텀 속성 |
| 외부 리소스 | JS 파일 목록(CSS, wolf 등 불필요한 파일 제외) |
접근성 검증¶
수집된 경로에 대해 실제 HTTP 요청을 보내 응답 상태 코드를 확인한다. 이를 통해 숨겨진 관리자 페이지, 인증 없이 접근 가능한 API 엔드포인트, 디렉토리 리스팅이 활성화된 경로 등을 빠르게 파악할 수 있다.
3. 자동화 도구의 동작 방식¶
동작 흐름¶
1. 대상 URL 입력
2. HTML 응답 수신 및 파싱
3. 태그/속성 기반 정보 추출
4. 수집된 경로에 대한 HTTP 요청 및 상태 확인
5. 결과 출력
사용 예시¶
- CLI 환경에서도 사용할 수 있지만, 많은 데이터는 시각화할 수 있는 GUI 환경이 더 효율적이라고 생각한다.
# Flask 기반 GUI 실행
python app.py
# CLI 기반 실행
python scanner.py -u https://example.com
python scanner.py -u https://example.com -o result.json
도구 실행 결과¶
- 스캔할 사이트를 기준으로
FORM,INPUT등 정보룰 수집한 결과 값을 출력한다. - 설정 기능을 이용해서 원하는 태그만 출력할 수 있으며, 세션 설정도 가능하다.

4. 제한사항¶
현재는 베타 버전으로 생각했기 때문에, 아직 지원하지 않는 기능들과 제한점이 많다.
- 정적 HTML 분석만 지원: JavaScript로 동적 렌더링되는 SPA 콘텐츠는 분석하지 못함
- JS 파일 내용 분석 미지원: JS 파일의 존재는 확인하지만, 내부 코드에서 API 경로나 하드코딩된 값을 추출하지 않음
- 단순 수집 도구: 발견된 정보를 기반으로 한 자동 취약점 테스트 기능 없음
- 단일 페이지 분석: 크롤링을 통한 사이트 전체 탐색 기능 없음
Roadmap¶
향후 추가할 기능들은 다음과 같다.
1. JS 파일 분석¶
- JS 파일 내용을 파싱하여 API 엔드포인트 패턴 추출
- 정규식 기반으로 하드코딩된 URL, 토큰, 키 값 탐지
- 난독화된 코드에 대한 기본적인 디코딩 시도
2. 취약점 스캐닝 자동화¶
- 수집된 경로와 파라미터를 활용한 자동 공격 테스트
- XSS, SQLi 등 기본적인 페이로드 삽입 및 응답 분석
- 파라미터별 취약점 가능성 플래그 표시
3. 결과 시각화 및 검증 지원¶
- 스캔 결과를 웹 인터페이스로 시각화
- 발견된 취약 포인트에 대한 상세 정보 제공
- 수동 재검증을 위한 curl 명령어/요청 템플릿 자동 생성
- 리포트 내보내기 기능 (HTML, PDF, Markdown)
4. 스캐닝 기능 고도화¶
- 단일 페이지가 아닌, JS/API를 찾으면 재귀적 스캔을 하도록 설정