검증 로직 우회를 통한 Open Redirect 취약점 제보
# 검증 로직 우회를 통한 Open Redirect
안녕하세요. 개발중인 SAST 보안 툴을 테스트하다가 취약점을 발견하여 제보드립니다.
조치를 위한 PR을 아래 링크에 작성해두었습니다.
- #583
## 취약한 Version
=< 6.0.4
## 취약점 설명
미흡한 검증 로직으로 `//`를 사용하여 방어 로직을 우회하여 로그인시 타 웹사이트로 사용자를 redirect시킬수 있음.
URL 경우 `//`로 시작할시 도메인으로 인지되기에 이러한 점을 악용하여 취약점을 발생시킬수 있습니다.
해당 취약점은 타 이슈에서도 언급되었듯이 피싱으로 악용될수있습니다.
### PoC
```
http://127.0.0.1:8000/bbs/login?url=//example.com
```
### 코드 문제점 및 조치
아래와 같이 현재 `//` 사용을 확인하는 검증 로직이 누락되어있습니다.
# https://github.com/gnuboard/g6/blob/fcd8dc7c42181fa95c1d64f688f6a720902d473e/lib/dependency/dependencies.py#L259-L270
이는 아래와 같이 조건문을 추가하여 조치가 가능합니다.
``` python
if (url
or url.startswith("//") # 여기와 같이 검증 조건 추가
and not url.startswith("/")
and not url.startswith(str(request.base_url))
and url not in allow_urls):
raise AlertException("올바르지 않은 URL입니다.", 400)
return url
```
## 관련 이슈 / PR
- #557
- #566
안녕하세요. 개발중인 SAST 보안 툴을 테스트하다가 취약점을 발견하여 제보드립니다.
조치를 위한 PR을 아래 링크에 작성해두었습니다.
- #583
## 취약한 Version
=< 6.0.4
## 취약점 설명
미흡한 검증 로직으로 `//`를 사용하여 방어 로직을 우회하여 로그인시 타 웹사이트로 사용자를 redirect시킬수 있음.
URL 경우 `//`로 시작할시 도메인으로 인지되기에 이러한 점을 악용하여 취약점을 발생시킬수 있습니다.
해당 취약점은 타 이슈에서도 언급되었듯이 피싱으로 악용될수있습니다.
### PoC
```
http://127.0.0.1:8000/bbs/login?url=//example.com
```
### 코드 문제점 및 조치
아래와 같이 현재 `//` 사용을 확인하는 검증 로직이 누락되어있습니다.
# https://github.com/gnuboard/g6/blob/fcd8dc7c42181fa95c1d64f688f6a720902d473e/lib/dependency/dependencies.py#L259-L270
이는 아래와 같이 조건문을 추가하여 조치가 가능합니다.
``` python
if (url
or url.startswith("//") # 여기와 같이 검증 조건 추가
and not url.startswith("/")
and not url.startswith(str(request.base_url))
and url not in allow_urls):
raise AlertException("올바르지 않은 URL입니다.", 400)
return url
```
## 관련 이슈 / PR
- #557
- #566
게시글 목록
| 번호 | 제목 |
|---|---|
| 329 | |
| 326 | |
| 325 | |
| 324 | |
| 323 | |
| 319 | |
| 318 | |
| 314 | |
| 313 | |
| 310 | |
| 309 | |
| 307 | |
| 306 | |
| 305 | |
| 304 | |
| 303 | |
| 302 | |
| 301 | |
| 300 | |
| 299 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기