Kilkat

XSS Attack Vector 본문

bugbounty/h1

XSS Attack Vector

KimKwangWoon 2023. 11. 30. 23:36

h1 프로그램 참여하면서 자주 사용했던 벡터 및 특이했던 벡터

 

1. URL Param

첫번째는 역시 URL Prameter이다. 특히 파라미터 값중에 어느 다른 사이트로 redirect하거나 WAF error를 발생시키는 페이지여도 XSS 공격을 시도해볼 수 있다. redirect하는 Parameter의 경우 기본 구문으로 테스트를 많이 하는데 입력값에 대한 검증이 없는 사이트의 경우 쉽게 XSS 공격이 가능하다. 그러나 WAF 혹은 입력값 검증이 이루어지는 사이트의 경우 HTTP error status를 발생시키며 error page로 redirect 하는 경우가 대다수다 그러나 이 부분에서도 XSS 공격이 가능할 수 있다. 물론 WAF를 bypass하는 방법도 좋은 시도이지만 만약 error page에서 입력값을 출력시킨다면 일부러 XSS구문을 통해 error page로 redirect 하며 XSS 구문을 trigger할 수 있다. 

 

2. input && textarea tag

input 혹은 textarea 태그등의 경우 Stored XSS 공격을 trigger하는 주범이다. 물론 안전한 방법으로 사용했을 경우는 제외이다. 이러한 부분도 충분히 XSS 구문을 시도해 볼만 하다. 만약 필터링을 하고 있다고 해도 value 옵션에 입력값이 제대로 필터링되지 않고 입력값 그대로 들어간다면 "를 통해 value 옵션 밖으로 나와 공격을 시도할 수 있다. ex: " onclick, " onload 와 같은 구문들은 input태그는 살리면서 특정 행동을 수행할 시 trigger되게 만들 수 있는 좋은 구문들이다.

 

3. search history

대부분의 사이트에는 내가 검색한 기록에 대한 결과값이 반환되는 것을 볼 수 있다. 이러한 기능구현이 입력값을 caching하고 있다가 반환하는건지는 정확히 모르지만, 예전에 테스트 했을때 입력값은 WAF로 필터링을 하지만 검색한 값을 히스토리로 보여줄때 그대로 필터링 되지 않고 반환되는 사이트가 있었다. 그런경우 충분히 XSS 구문을 trigger할 수 있다. WAF는 신경쓰지 않고 XSS 구문을 집어넣고 돌아가서 검색창을 다시 클릭해 history들을 펼칠때 trigger되는 형식이다.

 

4. svg upload

이부분은 생각보다 많이 터진다. 아마 화이트리스트로 입력값을 검증해야 하는데 블랙리스트로 검증하다가 놓치는 경우가 대다수이지 않을까 싶다. SVG XSS 구문은 널려있고 만들기도 쉽다보니 파일이 업로드가 가능한 페이지라면 무조건 시도해볼만 하다. 

 

 

 

Comments