Wargame/BeeBox

Beebox[HTML Injection - Reflected (POST)]

D4tai1 2021. 3. 27.

1. LOW

HTML Injection - Reflected (GET)와 동일하기 때문에 

 

링크만 남겨놓는거로 할게요!

 

ccurity.tistory.com/410

 

 

2. Medium

(1) 입력

 

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

 

URL인코딩을 한 후 입력한 결과를

버프스위트로 잡아보려고 합니다

 

[그림2] URL_Incoding

 

 URL인코딩 후 위와 같이 요청했을 때!

 

[그림3] 요청에 대한 응답

[그림2] 요청에 대한 응답을 보면 

HTML 인코딩이 되어있는 것을 확인할 수 있네요.

 

 

[그림4] 서버 코드

 

"%3ch1%3eABCD%3c/h1%3e"가 서버에 도착하면 

<h1>ABCD</h1>로 변경되고

 

[그림4]의 연두색 박스인 str_replace함수에 의해

&lt;와 &gt;로 치환되는 것으로 보이네요.

 

그래서 보낼 때 

<와 >부분만 더블인코딩을 해보려고 합니다.

 

[그림5] 더블인코딩

인코딩할 때 %를 %25로 인코딩해서 보내면 

서버가 해석할 때 %25를 %로 해석할 것이고 

 

"%3ch1%3eABCD%3c/h1%3e"

이런식으로 보여지겠죠?

 

이 상태에서 [그림4]의 <와 >가 없기 때문에

노란색박스는 패스하겠고?

 

[그림4]의 파란색박스에 있는 urldecode함수를 실행하면❓

 

[그림6] 더블인코딩 결과

[그림6]과 같이 응답이 오네요!!

 

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 (URL)]  (0) 2021.03.29
Beebox[HTML Injection - Reflected (GET)]  (0) 2021.03.27

댓글