Bee-Box(비박스) 소스코드에서 Reflected XSS가 발생하는 원인 찾기

Bee-Box 소스코드에서 Reflected XSS가 발생하는 원인 찾기

[보안 취약점 진단 및 대응/Bee-Box] - Bee-Box(비박스) Cross-Site Scripting - Reflected(GET)

 

Bee-Box(비박스) Cross-Site Scripting - Reflected(GET)

Bee-Box(비박스) Cross-Site Scripting - Reflected(GET) (1) Kali Linux에서 http://beebox/ 사이트로 이동하여 로그인 하고, 목록에서 Cross-Site Scripting - Reflected(GET)을 찾아 이동합니다. (bee/ bug) (2) 사용자 입력 값을

psjin230.tistory.com


#1 XSS 공격을 방어하기 위해 Bee-Box 가상머신에서 다음 명령어를 실행하여 소스코드를 확인합니다.

명령어 입력 > $ sudo gedit /var/www/bWAPP/xss_get.php

 

[xss_get.php]

소스코드 확인
xss_get.php(1)
xss_get.php(2)

=> 보안 등급에 따라 입력값을 처리하고 있는 함수와 입력받는 부분이 처리되는 과정입니다.

 

[functions_external.php]

functions_external.php

=> 검증된 함수, 라이브러리를 사용하는 것이 좋습니다.

 

#2 문제가 있는 코드를 수정합니다.

#2-1 htmlspecialchars() 사용

=> 이외에도 htmlentities() 사용도 권장합니다.

코드수정

#2-2 직접 필터링

코드수정

=> 사이트에서 실행해보면 필터링 된 것을 확인할 수 있습니다. 

=> 입력값을 화면에 출력할 때는 htmlspecialchars, htmlentities와 같은 검증된 함수, 라이브러리, 프레임워크를 사용하여 실행가능한 코드를 HTML 인코딩하여 일반 문자열로 출력되도록 해야합니다.