과제 : 각 문제별 XSS 취약점 확인하기
공통
- 로그인을 하게 되면 이런 화면이 날 반겨준다.
- 글을 읽을 수 있고, 수정과 삭제가 가능하다.
회원가입에서의 발견한 점
- 회원가입을 할 때 SOC가 들어가고 필터링하지 않는 것을 알 수 있었다.
ID: test<script>alert(1)</script>
- 해당 아이디로 로그인하면 알림창이 나오는 것을 확인했다.
- 하지만 아쉽게도 로그인할 떄 POST 방식으로만 받아 XSS공격이 불가능했다.
XSS 2
- 첫번째 문제는 글찾기에서 Reflected XSS가 발견되었다.
- asdf를 입력했을 때 해당 검색 결과에 대해 존재하지 않는다고 나오는데, 이부분을 이용한다.
hello');//
- 위와 같이 썼을 때 alert가 출력되는 것을 알 수 있다.
- 세션 탈취를 하고자 한다면 ;뒤부터 해당 코드를 작성하면 될 것이다.
XSS 3 & XSS 7
- XSS 2와는 달리 읽기에서는 ', ", <, >가 <, > 등으로 필터링되어 공격이 불가능한 것처럼 보였다.
- 하지만, 수정버튼을 누르니 해당 기호가 필터링 되지 않는 것을 알 수 있었다.
- 24줄에 update_title을 보면 <'">이 필터링이 되지 않는 것을 볼 수 있다.
"/></div></form></div><script>alert(1)</script>//
- 그리고 수정버튼을 누르니 알림창이 뜨는 것을 확인할 수 있었다.
- alert(1)을 세션 탈취 스크립트로 교체하고, 해당 글을 수정하는 URL을 전달하면 될것 같다.
http://ctf.segfaulthub.com:4343/xss_3/notice_update.php?id=??
- XSS 3와 XSS 7 방법으로 풀면되는거 같다..?
- 뭔가 내가 실수한 부분이 있는 것 같은데 이게 맞는지 모르겠다.
- stored XSS 같은데 일단 해당 스크립트를 입력하고 특정 페이지에 대한 접속이 필요하다.
- admin 같은 경우에는 내 글을 수정할 수 있다면 이러한 방식으로 접근이 가능하겠지만, 일반적인 이용자의 경우는 내 글을 수정 불가능하기 때문에 공격이 불가능할 것 같다.
- 접근 방법이 잘못된 거 같으니 일단 다른 방법도 생각해봐야겠다.