본문 바로가기
3. 웹 애플리케이션 취약점 진단/비박스를 활용한 웹 애플리케이션 취약점 진단

[비박스를 활용한 웹 취약점 진단] 7-7.크로스 사이트 스크립팅 [Reflected XSS-eval]

by Robert8478 2023. 12. 13.

eval 함수란? - 수식 형태로 된 문자열을 실수로 반환하는 자바스크립트 내장 함수이다. 작은 따옴표에 의한 값은 보통 텍스트 문자로 처리되는데 eval 함수를 사용하면 PHP 코드로 해석하고 실행하게 된다.

[난이도 하]

GET 방식으로 받는 페이지이기에 위에 date 변수에 date() 함수 결과를 출력하고 있어서 바로 스크립트 구문을 넣어보았다. 하지만 스크립트가 정상적으로 수행되지 않았다. 이는 alert 함수가 필터링 되었기 때문이다. 이제 이를 우회하기 위해서 eval 함수를 사용해서 세션값을 출력해보자.

eval(document.write(document.cookie)) 코드를 입력해서 쿠키값을 얻었다. alert 함수가 필터링 되는 경우 eval 함수로 우회할수 있게 된다.

[난이도 중]

난이도 중에서 같은 코드를 사용해보았는데 같은 결과가 출력되었다. PHP 코드를 살펴보아도 별다른 방어를 하는것 같지 않았다.

[난이도 상]

난이도 상에서는 코드를 넣었더니 에러메시지가 출력된다. php 코드를 살펴보자

코드를 보니 date 변수에 들어가는 값이 Date() 함수가 아니면 무조건 저 에러메시지를 출력하도록 보안 코딩을 해두었다.