
htcap은 AJAX 호출과 DOM 변경을 가로채 단일 페이지 애플리케이션(SPA)을 재귀적으로 크롤링할 수 있는 웹 애플리케이션 스캐너입니다.
htcap은 싱글 페이지 애플리케이션(SPA)을 재귀적으로 크롤링할 수 있는 웹 애플리케이션 스캐너로, Ajax 호출과 DOM 변경을 가로챕니다.
htcap은 단순한 취약점 스캐너가 아닙니다. 크롤링 프로세스에 중점을 두고 Ajax/fetch 호출, 웹소켓, JSONP 등을 탐지 및 가로채는 것을 목표로 합니다. 자체 퍼저와 여러 외부 도구를 사용하여 취약점을 발견하며, 현대 웹 애플리케이션의 수동 및 자동 침투 테스트를 위한 도구로 설계되었습니다.
또한 60줄 미만의 Python으로 사용자 정의 퍼저를 빠르게 개발할 수 있는 작지만 강력한 프레임워크를 제공합니다. 퍼저는 GET/POST 데이터, XML 및 JSON 페이로드로 작업할 수 있으며 POST와 GET 간에 전환할 수 있습니다. 물론 퍼저는 멀티스레드 환경에서 병렬로 실행됩니다.
이 버전은 phantomjs 대신 headless Chrome을 사용하는 첫 번째 릴리스입니다. Htcap의 자바스크립트 크롤링 엔진은 ecmascript의 새로운 async/await 기능을 활용하도록 다시 작성되었으며, Puppetteer 위에 구축된 Node.js 모듈로 변환되었습니다.
자세한 정보는 여기에서 확인하세요.
아래 비디오는 htcap이 Gmail을 크롤링하는 모습을 보여줍니다.
크롤링은 몇 시간 동안 지속되었으며 약 3000개의 XHR 요청이 캡처되었습니다.
필수 구성 요소를 설치하고 다음을 실행하세요:
$ git clone https://github.com/fcavallarin/htcap.git htcap
$ htcap/htcap.py
Docker를 설치하고 다음을 실행하세요:
$ git clone https://github.com/fcavallarin/htcap.git htcap
$ cd htcap
$ docker build -t htcap --build-arg HTCAP_VERSION=master . # 원하는 htcap 커밋 해시나 브랜치로 master를 바꾸세요
$ mkdir -p htcap-out && docker run -v "$(pwd)/htcap-out/":/out/ --rm --name htcap htcap
$ docker exec -it htcap bash
$ htcap # 이제 Docker 컨테이너에서 htcap을 사용할 수 있습니다
Docker 컨테이너 내에서 Docker 호스트에서 수신 대기 중인 서비스에 host.docker.internal 호스트 이름을 사용하여 액세스할 수 있습니다.
host.docker.internal의 IP를 얻으려면 Docker 컨테이너 내에서 다음 명령을 실행하세요:
getent hosts host.docker.internal | awk '{print $1;}'
문서, 예제 및 데모는 여기에서 확인할 수 있습니다.
이 프로그램은 자유 소프트웨어입니다; 귀하는 자유 소프트웨어 재단(Free Software Foundation)이 발행한 GNU 일반 공중 사용 허가서의 조건에 따라 이 프로그램을 재배포 및/또는 수정할 수 있습니다. 이 허가서의 버전 2 또는 (귀하의 선택에 따라) 이후 버전 중 하나를 선택할 수 있습니다.