티스토리 뷰

728x90
반응형

문제 설명

Welcome to Full Stack Conf, explore the future of JavaScript with a lineup of industry professionals and discover new techniques to advance your career as a web developer. But be very careful with the stay up to date form, we don't sanitize anything and the admin logs in and checks the emails regularly, don't try anything funny!! 😅

 

문제 설명에서 보면 "어떤 sanitize 도 없고, 관리자가 수시로 로그인 해서 이메일을 확인한다"는 내용이 의미심장합니다.

 

제공받은 URL에 접속하면 아래와 같은 페이지를 보실 수 있습니다.

 

 

그리고 스크롤을 최하단으로 내려보면 다음을 볼 수 있는데요.

 

 

alert() 를 pop 시키면 flag를 획득한다는 내용이 보입니다.

웹 페이지의 title 이 xss 인 것으로 보아 Cross Site Scripting 문제인 것으로 유추됩니다.

 

백엔드 소스코드가 어떤 식으로 이루어져있는지 확인할 길이 없어 무작정 Email을

여러차례 입력해보고 Sign up 버튼을 눌러서 XSS 가 걸리는 지 확인해봐야 했습니다.

 

그러던 중 클라이언트 사이드에서 아래 코드를 보게되었는데요.

 

 

서버에서 socket 으로 flag 라는 이벤트를 발생시켰을 때

flag의 내용이 클라이언트 사이드에서 alert 로 팝업되는 것 같았습니다.

 

그래서 아까 언급했던 대로 가장 일반적인 XSS 페이로드를 Email 에 입력해서 제출해보았습니다.

아래와 같이 말이죠.

 

 

그리고 Sign up 버튼을 눌렀더니 잠시 후에

alert 창으로 flag 값이 출력된 것을 확인할 수 있었습니다.

 

 

XSS 타겟이 어떤 스크립트로 이루어졌는 지 확인할 수 없는 경우를 일반적으로

Blind XSS(Cross Site Scripting)이라고 합니다.

 

최근 버그바운티 추세를 보았을 때 Reflected나 Stored XSS 취약점은 최신 프레임워크를 사용한다면

기본적으로 XSS Sanitize 나 필터링이 있기에 쉽게 나오지 않습니다.

 

반면 가끔가다 사용자 앞에 보이는 화면은 XSS 필터링이 잘되어 있는데,

관리자 페이지나 내부 환경 웹 페이지의 경우 취약한 경우가 더러 있다고 합니다.

 

이 때 Blind XSS 를 이용해서 버그바운티 제보를 많이 하는 것으로 보입니다.

관리자 페이지에서 바깥의 input (사용자 입력)을 받아올 때만큼은

특히나 주의해서 개발해야할 것 같다는 생각이 들게하는

문제였던 것 같습니다.

 

- 끝 -

728x90
반응형
댓글