Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
RegEx-DoS — 👮 👊 정규식 서비스 거부(ReDos) 스캐너 | Kitploit
도구/GitHubGitHub/jagracey/regex-dos
Defensive ToolsVulnerability ScannersStatic Code Analysis (SAST)Vulnerability AnalysisDevSecOps
GitHubjagracey/regex-dos

RegEx-DoS

👮 👊 정규식 서비스 거부(ReDos) 스캐너

저장소 보기
182198년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

👮 👊 RegEx 서비스 거부(ReDos) 스캐너

서비스 거부(DoS) 공격에 취약한 정규 표현식을 찾는 데 도움을 줍니다.

기여하기 전에 기여 지침을 읽어주세요.



실제 작동 중인 ReDoS 스캐닝 스크린샷.

정규 표현식 서비스 거부(Regular Expression Denial of Service)란 무엇인가?

Wikipedia와 OSWAP에 괜찮은 설명이 있습니다. 기본적으로 특정 정규식(RegEx)은 특정 입력에 대해 오랜 시간이 걸릴 수 있습니다. 실제 예시를 보여드립니다.

root@kitploit:~
>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/HEAD/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 0.060ms

>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/HEAD/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 308.656ms

>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/HEAD/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 3179.829ms


>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/HEAD/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 22159.769ms  // 22 seconds

>   // You can guess what would happen if you test the RegEx with 100 repeating characters.
    console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/HEAD/%5Ba-z%5D)+$/.test( 'a'.repeat(100) );
    console.timeEnd('benchmark');
< benchmark: lol.....no.


# ReDoS 설치

평소와 같이 NPM으로 설치합니다.

root@kitploit:~
npm install redos

CLI에서 redos를 실행할 수 있습니다:

root@kitploit:~
# Use "Find" to run Regex-DoS for any set of JS files you want.
find . -name "*.js" -not -path "./node_modules/*" -exec redos {} \;

또는 node 모듈로 실행하려면:

root@kitploit:~
var redos = require('redos');

// Using a Callback
redos(" 'aaaa'.split(/a+b?c*/g); ", function(regexNodes){
  console.log( regexNodes.results() );
};


// Or Without a Callback
redos(" 'aaaa'.split(/a+b?c*/g); ").results();


// Or With Better Content to Parse
const fs      = require('fs');
const content = fs.readFileSync('./foobar.js'); // <--- Your own file Here.
redos( content ).results();


테스트

곧 공개 예정?



기여

기여 방법에 대한 자세한 내용은 기여 가이드를 참조하세요. 아마도 예상하시는 그대로일 것입니다.

행동 강령(Code of Conduct)

자세한 내용은 행동 강령을 참조하세요. 기본적으로 요약하면 다음과 같습니다:

개방적이고 환영하는 환경을 조성하기 위해, 우리 기여자와 유지관리자는 연령, 체형, 장애, 민족, 성 정체성과 표현, 경험 수준, 국적, 외모, 인종, 종교, 또는 성적 정체성과 지향에 관계없이 누구에게나 괴롭힘 없는 경험을 우리 프로젝트와 커뮤니티에서 제공할 것을 서약합니다.

라이선스

MIT 라이선스 (MIT)

Copyright (c) 2016 John Gracey

이 소프트웨어 및 관련 문서 파일(이하 "소프트웨어")의 사본을 얻은 모든 사람에게는 소프트웨어를 제한 없이 다룰 수 있는 권한이 무료로 부여됩니다. 여기에는 소프트웨어 사본을 사용, 복사, 수정, 병합, 게시, 배포, 재라이선스 및/또는 판매할 권리와, 소프트웨어를 제공받은 사람이 그렇게 할 수 있도록 허용할 권리가 포함되며, 단 아래의 조건에 따르는 경우에 한합니다.

위 저작권 고지 및 이 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함되어야 합니다.

소프트웨어는 어떠한 종류의 명시적 또는 묵시적 보증 없이 "있는 그대로" 제공됩니다. 여기에는 상품성, 특정 목적에의 적합성 및 비침해성에 대한 보증이 포함되나 이에 국한되지 않습니다. 어떠한 경우에도 저자 또는 저작권 보유자는 계약, 불법 행위 또는 기타 행위에 관계없이, 소프트웨어 또는 소프트웨어의 사용이나 기타 거래로 인해 발생하거나 이와 관련하여 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.

도구 다운로드