Web hacking/bee-box
[Bee-box] XSS - Reflected (AJAX/JSON)
Dokker
2023. 12. 19. 18:29
ajax는 javascript를 이용하여 비동기식 통신을 한다. 때문에 요청 버튼 없이 즉각적으로 값의 유효성을 검사할 수 있다.
난이도 하
페이지 소스코드를 보면
입력 값을 GET 방식으로 xss_ajax_2-2.php 에 보내는 것을 확인 할 수 있다.
해당 URL로 title 값으로 스크립트 문을 입력.
성공
또다른 방법은 <img> 태그를 이용하는 것.
onerror는 이미지 에러가 발생하면 실행될 것을 설정하는 옵션이다. 이를 이용하여 이미지 에러를 유도 후 alert를 실행할 수 있다.
<img src=a onerror=alert("hi")>
성공
난이도 중
난이도 중에서는 header() 함수를 통해 content_type을 json 으로 보내고 있었다. 이를 통해 자바스크립트 코드의 실행을 차단
난이도 상
htmlspecialchars() 함수 사용