취약점/Bee-Box

HTML Injection - Reflected (POST) bWAPP

시큐렛 2019. 11. 27. 21:47

HTML Injection이란?

HTML Injection(Reflected)은 매개변수에 HTML 태그를 삽입하여 HTML 태그로 의도하지 않은 내용을 보여주거나 다른 사이트로 연결시킬 수 있다.

Reflected는 반사형이며 이는 사용자로 하여금 악의적인 HTML 태그를 삽입한 URL 링크 클릭을 유도하는 방법이다.

 

POST방식은 GET방식처럼 URL에 키값과 벨류 값을 보내지 않고 데이터를 body에 담아 요청을 하기 때문에 사용자가 어떤 데이터를 요청하는지 URL에 표시가 되지 않기 때문에 GET방식보다는 보안에 좋습니다(안전하진 않음).

 

Welcome bee bug

이전 글과 같이 Welcome +firstname+Lastname 으로 출력이 되는 php페이지이다.

코드소스 차이점

위 사진은 GET메소드와 POST메서드로 매게 변수를 HTML Injection의 소스코드이다.

버프슈트

버프슈트로 intercept 한 화면을 보면 매게 변수들을 body에 받아 보내는 것을 확인할 수 있다.

버프슈트 입력

버프슈트에 firstname과 lastname에 이전 글과 같은 HTML 코드를 삽입하고 forward 시키면

위 사진처럼 CLICK HERE와 사진이 출력되고 사진 클릭 시 구글로 이동될 수 있다.


대응방법

POST방식의 HTML Injection도 이전 글처럼 매개변수의 값을 검증하고 HTML이스케이프 문자가 포함되어 있으면 변환하여 주는 방법으로 대응할 수 있다.