2025. 5. 8. 00:06ㆍ잡다한 글
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~!~!~!
정규 표현식 서비스 거부 공격
ReDoS(Regular expression Denial of Service) 서비스 거부 공격 중의 하나로 정
namu.wiki
+) 나무 위키에도 나온다...?
'잡다한 글' 카테고리의 다른 글
| KUality 정회원 선발 웹 과제 Write-Up (0) | 2025.09.14 |
|---|---|
| IDOR? (0) | 2025.05.07 |
| 컴퓨터구조 기초 (0) | 2023.09.11 |
| 2022/05/03 - 백준 티어와 약간의 근황 (0) | 2022.05.03 |