Season 1/기술 보안

[XSS 점검 자동화] 2장. Auto_XSS 프로그램 정의

작성자 - S1ON

개요

이번 장에서는 앞으로 만들어나갈 프로그램을 정의해본다.

 

프로그램 설명

구분 내용
프로그램 요약 웹 사이트의 모든 페이지, 모든 파라미터를 대상으로 XSS 취약점 존재유무 판단이 가능한 프로그램
프로그램 명 Auto_XSS.py
개발언어 python 3.9.5
개발목적 XSS 취약점 진단 업무의 반복작업을 자동화하여 이후 업무를 효율적으로 수행하며 그 시간에 더 크리티컬한 취약점을 찾을 수 있는 것을 목적으로 한다.

 혹시나 잘 만들어진다면 국내 보안에 이바지하여 V3의 1/10,000,000 정도의 인지도를 갖는 걸 목적으로 한다. 일단 현재 필자를 제외한 블로그 멤버인 6명이 알테니 만들기만 한다면 소정의 목적은 달성할 수 있을 것이라고 본다.

 

프로그램 기능정의서

구분 모듈 설명
1 실행 프로그램 실행 시, 실행 옵션으로 타겟 URL과 브라우저의 종류와 로그인 세션 값을 입력하여 사용자의 세션으로 크롤링 및 취약점 테스트를 수행하도록 한다.
예시) autoxss.py -t {URL} -k {브라우저종류}  -s {로그인 세션 값}
2 request 크롤링 파이썬에서 제공하는 Selenium을 이용하여 타겟 URL에서 사용자 세션으로 접근 가능한 모든 request에 대한 정보(경로, 헤더, 파라미터)를 수집한다.
3 XSS 테스트 1) requests 모듈을 이용하여 크롤링된 request 파라미터에 특정 문자를 입력 후, response에 해당 문자가 포함된 request를 따로 분류한다.
2) 위 작업에서 확인된 request를 대상으로 기본적인 악성 스크립트를 입력 후, response에 해당 문자가 포함된 line을 따로 분류한다.
※ 예시
- 특정 문자: aaa
- 악성 스크립트: "><script>alert(1)</script><"
4 response 크롤링 XSS 테스트 모듈의 1)에서 특정 문자가 삽입된 요청이 DB에 저장되어 있는지 유무를 판단하기 위한 크롤링 수행 > DB에 저장된 경우 확인 후 삭제 과정이 필요
5 결과 출력 결과는 csv 파일 형태로 출력
1) request 크롤링 결과
2) response 크롤링 결과
3) 테스트 결과
 - 특정 문자가 삽입된 요청 목록
 - 악성 스크립트가 삽입된 요청 목록

※ 개발이 진행중이므로 기능정의 내용이 변경될 수 있음

Contents

이 글이 도움이 되었다면, 응원의 댓글 부탁드립니다.