JSON이란? - 클라이언트와 서버가 통신할 때 자료를 표현하는 방법으로 특정 언어에 제한 없이 그대로 사용할 수 있다는 장점이 있으며, 여러 자료 구조를 JSON으로 표현 가능하다.
이번 페이지는 JSON으로 객체를 선언하는 자바 스크립트 코드를 사용하여 검색한 영화 정보를 출력해주는 페이지이다.
[난이도 하]
텍스트 입력창에 이름을 넣고 검색하니 GET 방식으로 받아서 화면에 출력되었다.
소스코드를 확인해 보니 스크립트로 검색에 대한 응답을 받는 형태이다. 이미 스크립트를 사용중인 구문에 입력값이 들어가기 때문에 </script> 로 우선 기존 스크립트 문을 닫아준 뒤 XSS 구문을 넣어 주어야 할 것이다.
</script><script>alert(document.cookie)</script> 구문을 넣어주었더니 세션값이 노출되었다.
알림창에 확인을 눌러주고 나니 XSS 공격으로 인해서 실행되지 않은 기존의 스크립트 코드가 출력되었다.
[난이도 중,상]
난이도 중에서는 스크립트가 문자열로 출력이 되어서 소스코드를 보았더니 < 로 변한것을 보면 특수문자를 필터링 한 것을 확인할 수 있다.
역으로 필터링된 구문으로 넣어보아도 스크립트가 적용되지 않았다.
PHP 코드를 살펴보았더니 난이도 중과 상 둘다 htmlspecialchars 함수를 사용하여 필터링 하고 있었다.
'3. 웹 애플리케이션 취약점 진단 > 비박스를 활용한 웹 애플리케이션 취약점 진단' 카테고리의 다른 글
[비박스를 활용한 웹 취약점 진단] 7-7.크로스 사이트 스크립팅 [Reflected XSS-eval] (0) | 2023.12.13 |
---|---|
[비박스를 활용한 웹 취약점 진단] 7-6.크로스 사이트 스크립팅 [Reflected XSS-AJAX/JSON] (0) | 2023.12.13 |
[비박스를 활용한 웹 취약점 진단] 7-4.크로스 사이트 스크립팅 [Reflected XSS-POST] (0) | 2023.12.13 |
[비박스를 활용한 웹 취약점 진단] 7-3.크로스 사이트 스크립팅 [Reflected XSS-GET] (0) | 2023.12.13 |
[비박스를 활용한 웹 취약점 진단] 7-2.크로스 사이트 스크립팅 [Stored XSS-User Agent] (0) | 2023.12.13 |