Security 탭에서 제보가 불가능하여 Issues를 통해 제보드립니다.
Version: 6.0.3
Vuln: Open Redirect
PoC
http://localhost:8000/bbs/login?url=https://google.com
Impact
- 피싱 사이트로 연계한 공격이 발생할 수 있습니다.
Secure Code (bbs/login.py)
https://github.com/gnuboard/g6/blob/master/bbs/login.py
아래 코드에서 url 인자에 대해 필터링이 미흡하여 발생하기 때문에 필터링 추가 필요
@router.post("/login")
async def login(
request: Request,
member_service: Annotated[MemberService, Depends()],
mb_id: str = Form(...),
mb_password: str = Form(...),
auto_login: bool = Form(default=False),
url: str = Form(default="/")
):
"""로그인 폼화면에서 로그인"""
member = member_service.authenticate_member(mb_id, mb_password)
request.session["ss_mb_id"] = member.mb_id
# XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다.
ss_mb_key = session_member_key(request, member)
request.session["ss_mb_key"] = ss_mb_key
# 자동로그인
response = RedirectResponse(url=url, status_code=302)
# 최고관리자는 보안상 자동로그인 기능을 사용하지 않는다.
if auto_login and not is_super_admin(request):
age_1day = 60 * 60 * 24
cookie_domain = request.state.cookie_domain
response.set_cookie(key="ck_mb_id", value=member.mb_id,
max_age=age_1day * 30, domain=cookie_domain)
response.set_cookie(key="ck_auto", value=ss_mb_key,
max_age=age_1day * 30, domain=cookie_domain)
return response
Security 탭에서 제보가 불가능하여 Issues를 통해 제보드립니다.
Version: 6.0.3
Vuln: Open Redirect
PoC
Impact
Secure Code (bbs/login.py)
https://github.com/gnuboard/g6/blob/master/bbs/login.py
아래 코드에서 url 인자에 대해 필터링이 미흡하여 발생하기 때문에 필터링 추가 필요