ReDoS?

2025. 5. 8. 00:06잡다한 글

728x90

ReDos (Regular expression Denial of Service) 취약점

=> 직역하면 "정규 표현 서비스 거부". 즉, 정규 표현식을 활용한 공격이라는 소리다.

=> 서버가 정규식을 해석하는데 들이는 시간(시간복잡도)를 증가시켜, 서버의 자원을 고갈시키는 방식.

[+] (a+)+

[+] 위와 같은 정규식에 "aaaaaaaaaaa" 같은 문자열이 입력될 경우, 경우의 수가 나눠지면서 서버에서는 백트레킹으로 탐색 시작.

[+] 계산량이 많아짐에 따라 시간복잡도 급증 => 서버 다운.


위험성은?

[1] ReDos는 서버의 가용성을 떨어뜨리는 공격이다.

[2] 직접적인 데이터 유출이나 권한상승 등은 없다. (기밀성, 무결성은 세이프)

[3] 이전에 기술한 IDOR 공격보다는 상대적으로 위험성이 낮은 편.

[+] 인증 서비스나 중요 API 등에서 발생하면 위험도가 올라갈 가능성이 있다.


공격 벡터? (+ 예시)

1. 이메일 검증 정규식

^([a-zA-Z0-9_\.\-])+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}$

[1] 알파벳, 숫자, 언더바, . , - 중 1개 이상

[2] 알파벳, 숫자, - 중 1개 이상 + .

[3] 알파벳 2~6글자

=> aaaaaaaaaaaaaaa@a.a.a.a!

 

 

2. URL 검증 정규식

^(https?:\/\/)?([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}(\/.*)?$

[1] (http/https) + 도메인 + 도메인 확장자 + (경로)

[2] ([a-zA-Z0-9\-]+\.)+ 부분이 취약

=> http://aaaaaaa.a.a.a.a~

 

 

3. PW 검증 정규식

^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

[1] 대문자, 소문자, 숫자, 특수문자 포함 8글자 이상

=> aaaaaaaaaaaaaaa~!~!~!


https://namu.wiki/w/%EC%A0%95%EA%B7%9C%20%ED%91%9C%ED%98%84%EC%8B%9D%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EA%B1%B0%EB%B6%80%20%EA%B3%B5%EA%B2%A9

 

정규 표현식 서비스 거부 공격

ReDoS(Regular expression Denial of Service) 서비스 거부 공격 중의 하나로 정

namu.wiki

+) 나무 위키에도 나온다...?

728x90

'잡다한 글' 카테고리의 다른 글

KUality 정회원 선발 웹 과제 Write-Up  (0) 2025.09.14
IDOR?  (0) 2025.05.07
컴퓨터구조 기초  (0) 2023.09.11
2022/05/03 - 백준 티어와 약간의 근황  (0) 2022.05.03