
XSS 공격용 명령줄 인터페이스 및 페이로드 생성기.
toxssin은 XSS(Cross-Site Scripting) 취약점 악용 과정을 자동화하는 오픈소스 침투 테스트 도구입니다. 이 도구는 이 도구를 작동시키는 악성 JavaScript 페이로드(toxin.js)가 생성하는 트래픽을 해석하는 https 서버로 구성되어 있습니다.
이 프로젝트는 순수 JavaScript, 신뢰할 수 있는 인증서, 그리고 간단한 트릭을 사용하여 XSS 취약점이 유발할 수 있는 악용 가능성의 깊이를 탐구하기 위한 연구 기반의 창의적인 작업으로 시작되었습니다(그리고 여전히 그렇습니다).
고지 사항: 이 도구를 테스트할 명시적 권한이 없는 웹 앱에 사용하는 것은 불법입니다. 이 도구를 사용하여 발생하는 모든 문제에 대한 책임은 사용자에게 있습니다.
https://www.youtube.com/watch?v=Z9I4UJUBrrY

더 많은 스크린샷은 여기에서 확인하세요.
기본적으로 toxssin의 JavaScript 포이즌은 웹페이지의 요소와 정보 전반에 자동으로 퍼지며, XMLHttpRequest 객체를 악용하여 다음을 가로챕니다:
가장 중요한 것은 toxssin이 다음을 수행한다는 점입니다:
git clone https://github.com/t3l3machus/toxssin
cd ./toxssin
pip3 install -r requirements.txt
toxssin.py를 시작하려면 ssl 인증서와 개인 키 파일을 제공해야 합니다.
신뢰할 수 있는 인증서가 있는 도메인이 없다면 다음 명령으로 자체 서명된 인증서를 발급하여 사용할 수 있습니다(하지만 이것만으로는 충분하지 않을 것입니다):
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
신뢰할 수 있는 인증서와 함께 toxssin을 실행하는 것이 강력히 권장됩니다(이 문서의 신뢰할 수 있는 인증서를 얻는 방법 참조). 그렇다 하더라도, 다음과 같이 toxssin 서버를 시작할 수 있습니다:
python3 toxssin.py -u https://your.domain.com -c /your/certificate.pem -k /your/privkey.pem
추가 정보는 프로젝트의 wiki를 방문하세요.
제 경험상, 외부 JS 스크립트를 포함하려는 XSS(Cross-Site Scripting) 공격에는 4가지 주요 장애물이 있습니다:
script-src가 특정 도메인만으로 설정된 Content-Security-Policy 헤더는 교차 도메인 src를 가진 스크립트의 로드를 차단합니다. toxssin은 포이즌을 전달하기 위해 eval() 함수에 의존하므로, 웹사이트에 CSP가 있고 script-src 지시문에 unsafe-eval 소스 표현식이 지정되지 않은 경우 공격은 실패할 가능성이 높습니다(이를 우회하기 위한 두 번째 포이즌 전달 방법을 작업 중입니다).참고: "Mixed Content" 오류는 당연히 대상 웹사이트가 http를 통해 호스팅되고 JavaScript 페이로드가 https를 통해 제공될 때도 발생할 수 있습니다. 이로 인해 toxssin의 범위는 https 전용 웹사이트로 제한됩니다(기본적으로 toxssin은 ssl 전용으로 시작되기 때문입니다).
먼저 도메인 이름을 소유해야 합니다.
무료 옵션은 freenom에서 찾아볼 수 있습니다. 제대로 하려면 약간 까다롭습니다. 이 안내 동영상을 따라 하시길 권장합니다. 또한 처음 계정을 만들 때 선택한 국가가 IP 주소와 일치하는지 확인하세요. 그렇지 않으면 오류가 발생할 수 있습니다.
도메인 등록 대행 서비스(예: https://www.namecheap.com/)에서 도메인을 구매하세요. 가장 경제적인 방법은 무작위 문자열 도메인 이름(예: "fvcm98duf")을 검색하고 .xyz와 같이 인기가 적은 TLD를 확인하는 것입니다. 아마 연간 약 3달러 정도일 것입니다.
도메인 이름을 구매한 후 certbot(Let's Encrypt)을 사용하여 5분 이내에 신뢰할 수 있는 인증서를 받을 수 있습니다:
팁: certbot을 임의로 설치하고 실행하지 마세요. 예상치 못한 오류가 발생할 수 있습니다. 안내를 따르세요.
2022-06-19 - exec 프롬프트 명령이 추가되었습니다(이제 세션에 대해 사용자 정의 JS 스크립트를 실행할 수 있습니다).
2022-06-23 - exec 프롬프트 명령을 테스트하기 위한 템플릿으로 간단하고 허술한 스크립트 두 개를 추가했습니다. 또한 cmd 프롬프트의 이전 기록 접근을 수정하고 몇 가지 개선했습니다.
목표는 더욱 날카롭고 안정적으로 만들고 기능을 확장하는 것입니다. 현재 파일 캡처를 개선하는 작업을 진행 중입니다.