Wargame/BeeBox

Beebox[HTML Injection - Reflected (URL)]

D4tai1 2021. 3. 29.

반사 : 입력한 내용을 페이지에 띄우는 것!


 1. LOW 

(1) 입력

 

[그림1] 현재 URL 출력

 

현재 URL을 보여주고 있네요.

 

여기에 스크립트를 적용해 볼게요.

 

 

[그림2] 스크립트 추가

URL의 파라미터입력하는 부분에 

스크립트를 넣으면 

 

 URL을 보여주는 곳에서 스크립트를 실행한 후 보여주겠죠❓

 

스크립트에서 출력한 쿠키는 PHPSESSID와 security level 2개가 있네요❗

 

참고로 HOST필드에는 구지 호스트를 작성하지 않아도 요청을 하더라고요

이번에 알게 되었는데 그냥 확인용인 것 같습니다.

 

그래서 저 부분에 호스트를 지우고 태그를 넣어보았죠❗❗

 

과연❗❗ 쿠키에 태그가 적용된 후 출력이 될지..


(2) 공격

 

[그림3] 스크립트 입력 후 응답

 

<h1>태그도 정상적으로 실행되고 쿠키2개도 출력된 것을 확인할 수 있네요!!

 

2. Medium 

(1) 소스코드 확인

Low와 동일하게 입력해보았지만 실행이 되지 않네요

 

[그림4] 소스코드 확인

document.URL을 출력해주고 있네요. 

 

php에서 "#"은 주석으로 처리되지만 뒤에 있는 html코드는 실행됩니다❗❗

<h1>te<?php #echo "abcd"?>st</h1>

▶ <h1>test</h1>가 실행됨❗❗

 

그래서 공격을 해보겠습니다.


(2) 공격

 

[그림5] 입력에 따른 결과

http://172.17.234.101/bWAPP/htmli_current_url.php#<h1><script>document.write(document.cookie)</script>

위와 같이 입력한다면 서버에서

 

#뒤에 있는 것도 출력을 시켜줍니다.

 

아, 그리고 크롬에서는 URL에 스크립트 입력하는 것을 막아놓았으니

 

인터넷 익스플로러에서 실행했습니다

 

 

 

3.  HIGH

(1) 대응방안

[그림7] htmlspecialchars

 htmlspecialchars함수는

", ', &, <, >을 UTF-8로 변환해요.

 

'Wargame > BeeBox' 카테고리의 다른 글

Beebox[OS Command Injection]  (0) 2021.03.29
Beebox[iFrame Injection]  (0) 2021.03.29
Beebox[HTML Injection - Stored (Blog)]  (0) 2021.03.29
Beebox[HTML Injection - Reflected (POST)]  (0) 2021.03.27
Beebox[HTML Injection - Reflected (GET)]  (0) 2021.03.27

댓글