XSS 2

XSS CTF 정리 3번 문제

이번엔 XSS CTF 3번 문제를 풀어보겠습니다. 목표는 alert를 띄울 수 있는 Reflected XSS 취약점을 찾는 것입니다. 처음 로그인 창이 뜨는 것은 2번 문제와 같습니다. 아마 계정이 연동될테니 그대로 로그인 하겠습니다. 예상대로 로그인 되었습니다. 마이페이지를 들어가 보겠습니다. Burp Suite로 어떤 파라미터가 들어있는지 분석해봅니다. 이 페이지는 user라는 파라미터를 GET 방식으로 보내고 있는데, 저 인코딩된 문자를 디코딩해보면 내 이름이 나오는 것을 알 수 있습니다. 검색 기능에 hi를 넣고 user 파라미터에 hi로 바꿔 send를 눌렀더니 match가 되는 것을 확인할 수 있습니다. 실제 페이지에서 테스트를 해봐도 placeholder의 값이 잘 적용됩니다. 럭키입니다. ..

XSS 대응 방안 - htmlspecialchars 함수

저번에 풀었던 XSS CTF 문제에서 제목란에 script 태그를 넣으면 먹히고 내용에 태그를 넣으면 먹히지 않았었다. 대응 방법도 연구할 겸 이유가 뭘까? 분석해보았다. 제목은 먹힌다는 걸 알았으니, 일반 텍스트를 넣고 내용에 간단한 경고창을 띄우는 script 태그를 입력했다. 작성 성공 게시판에 잘 등록이 되었다. 이제 이걸 클릭하면?? ...아무 변화가 없이 script 태그가 그냥 글자처럼 출력이 되었다. F12를 눌러 개발자 도구를 살펴봐도 평범하게 적혀있다. 라는 게 찍히는 걸 보면 strip_tags() 함수를 쓴 것도 아닌 것 같다. strip_tags()는 모든 태그를 없애는 함수이다. script 라는 태그가 필터링 되어있는 것은 아닐까? 해서 javaScript는 대소문자를 상관하지..