관리 메뉴

Information Security

HTML 인젝션 – Reflected(Get) 본문

Web Security/Bee-Box

HTML 인젝션 – Reflected(Get)

HackingPractice 2019. 8. 4. 12:01

HTML 인젝션 - Reflected(Get)

 - 취약한 매개변수에 악의적인 HTML 코드를 삽입하는 공격

 - HTML 태그로 악의적인 사이트에 연결하거나 악성 파일 다운로드하도록 유도

 

Level (Low)

이번에는 스크립트 언어 <h1>123</h1>, <h2>123 </h2>을을 입력했다.

그림 1-1 스크립트 언어

태그가 해석되면서 결과 값을 보여준다. Reflected는 클라이언트가 서버에 영향을 주는 게 아니라 클라이언트에게 영향을 주는 것을 알 수 있다. 

그림 1-2 스크립트 결과

<script>alert(document.cookie)</script>이번에는 쿠키 값을 불러왔다.

그림 1-3 쿠키 스크립트

경고창에 cookie 값을 보여주는 것을 알 수 있다.

그림 1-4 쿠키 값 노출

Level (Medium)

그림 1-1 처럼 난이도 중에서 데이터를 입력했다.

그림 1-5 데이터 입력

그림 1-2와는 다르게 스크립트 언어가 그대로 보여주는 것을 알 수 있다.

그림 1-6 스크립트 언어

스크립트 언어가 어떻게 입력되는 지를 확인하기 위해 소스코드를 확인했다. 스크립트언어가 &lt, &gt로 치환된 것을 알 수 있다.

그림 1-7 스크립트 필터링

버프스위트를 이용해 입력한 값을 더블 인코딩해서 서버에 전달했다.

그림 1-8 더블 인코딩

더블 인코딩해서 데이터를 전달하자 그림 1-2처럼 내용이 보여주는 것을 알 수 있다.

그림 1-9 더블 인코딩 결과

Level (Medium)

Level (High)은 스크립트 언어가 그대로 노출되는 것을 알 수 있다.

그림 1-10 Level High

대응방안

HTML 인젝션 Reflected 문제 소스코드를 확인했다.

그림 1-11 소스코드

xss_check_1 부분을 보면 <,> 특수문자가 &lt, &gt로 치환되는 것을 알 수 있다. 그리고 Bypass double encoding attack의 취약점을 가지고 있는 것을 알 수 있다.

그림 1-12 xss_check_1 소스코드

 

htmlspecialchars 함수는 PHP에서 제공하는 기본 함수로, HTML에서 사용하는 특수 문자를 UTF-8로 반환한다. htmlspecialchars 함수에서 변환하는 특수문자는 ‘&,”,’,<,>’이다.

그림 1-13 xss_cehck_3 소스코드

 

'Web Security > Bee-Box' 카테고리의 다른 글

SQL Injection (CAPTCHA)  (0) 2019.08.25
SQL Injection(POST/Search)  (0) 2019.08.25
SQL Injection (Get/Search)  (0) 2019.08.11
OS Command Injection  (0) 2019.08.11
PHP Code Injection  (0) 2019.08.10