검증 로직 우회를 통한 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
게시글 목록
| 번호 | 제목 |
|---|---|
| 290 | |
| 284 | |
| 282 | |
| 281 | |
| 279 | |
| 277 | |
| 275 | |
| 272 | |
| 263 | |
| 258 | |
| 257 | |
| 256 | |
| 255 | |
| 252 | |
| 251 | |
| 244 | |
| 243 | |
| 239 | |
| 236 | |
| 235 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기