본문 바로가기

Penetration/WEB

[bee-box] XSS-1

(공부한 내용을 기록하기 위해서 작성하였습니다)

 

XSS - Reflected(GET)

먼저 임의의 값을 넣습니다.

이후 GET방식이므로 URL에 남는 것을 확인할 수 있습니다.

이후 스크립트 구문을 firstname의 인자에 삽입하고 요청을 보냅니다. 

요청의 결과를 확인해보면 필터링 없이 스크립트 구문이 정상적으로 body에 나타나는 것을 확인할 수 있습니다. 따라서 스크립트 구문이 동작하는 것을 확인할 수 있습니다.

 

XSS - Reflected(POST)

First name에 aaa, Last name에 aaa를 작성합니다. 이후 프록시 도구를 이용하여 스크립트 구문을 삽입하고 응답을 확인하면 아래와 같이 필터링 없이 작동하는 것을 확인할 수 있습니다.

이후 스크립트 구문이 동작하는 것을 확인할 수 있습니다.

XSS - Reflected(JSON)

aaa를 입력해줍니다. 이후 프록시 도구를 이용해서 응답을 확인합니다.

저 괄호를 묶어주면 스크립트 구문이 작동할 수 있겠다는 생각이 들었기에 구문을 작성하기로 하였습니다.

실행시키기 위해서는 두가지에 신경을 써야 했습니다. 

 

첫번째는 괄호를 알맞게 닫아주어야 했고, 두번째는 위의 </script>를 닫아야 했습니다. 따라서 아래와 같은 스크립트 구문을 작성하였습니다.

"}]}';</script><img+src=x+onerror=prompt(document.cookie)>

이후 아래와 같이 정상적으로 스크립트 구문이 작동하는 것을 확인할 수 있습니다.

 

XSS - Reflected(AJAX/JSON)

위의 페이지 자체에는 스크립트 구문이 동작하지 않지만 작동시켜보면 xss_ajax_2-2.php?title= 부분이 나타난다 여기에 기본스크립트 구문이 작동하였습니다.

XSS - Reflected(AJAX/XML)

해당 문제의 경우 html special character로 작성시 스크립트 구문이 터지는 문제입니다.

&lt;script&gt;alert(1)&lt;/script&gt;

 

요약

1. 오늘 공부한 내용을 토대로 보면

XSS 공격 시 응답을 확인해보면 실행 가능한 형태가 되어야 한다.

2. 공격 시도시 응답을 통해서 필터링 되는 것을 확인해야한다.