Study/Web

[Web][beebox]HTML Injection - Reflected (GET)

seomj 2020. 12. 21. 11:23

LEVEL : Low 

 

정상적인 입력

Frist name : seomj

Last name : 74

 

코드입력

Frist name : <h1>Hello</h1>

Last name :  <h2>Bye</h2>

-> 'Welcom+First name 입력값+Last name 입력값'으로 출력

-> 입력값을 검증하지 않아 HTML 태그로 인식하여 그대로 해석

-> 이를 통해 악의적인 공격이 가능

 

 

 

LEVEL : Medium

 

Low level 입력

Frist name : <h1>Hello</h1>

Last name :  <h2>Bye</h2>

-> Low와는 다른 결과가 나타남

-> 태그를 필터링한다고 예측 가능

-> 문자를 URL 인코딩하여 입력

-> URL 인코딩은 ASCII 코드의 HEX 값 앞에 %를 붙인 값 - '<' = %3C, '>' = %3E, '/' = %2F

(URL 인코딩은 코딩을 해서도 구현이 가능하며 사이트를 이용할 수도 있음)

 

URL 인코딩 후 입력

Frist name : %3Ch1%3EHello%3C%2Fh1%3E

Last name : %3Ch2%3EBye%3C%2Fh2%3E

 

 

코드 확인

(/var/www/bWAPP/htmli_get.php)

-> switch문을 통해 단계별로 case를 실행

-> medium은 value 값이 1이므로 case 1 실행

-> xss_check_1() 함수는 functions_external.php에 존재 (include 부분을 참조하면 파악 가능)

 

-> '<', '>' 문자를 HTML Entities(&lt, &gt)로 변환

-> urldecode() 함수를 이용해서 URL 인코딩 문자를 디코딩해서 다시 변수에 저장

-> '<', '>' 문자를 단순한 괄호로 인식, 태그로 인식 X

 

 

 

LEVEL : High

 

Low level 입력

Frist name : <h1>Hello</h1>

Last name :  <h2>Bye</h2>

 

Medium level 입력

Frist name : %3Ch1%3EHello%3C%2Fh1%3E

Last name : %3Ch2%3EBye%3C%2Fh2%3E

 

-> htmlspecialchars() 함수 사용

 

 

코드 확인

(/var/www/bWAPP/htmli_get.php)

-> high은 value 값이 2이므로 case 2 실행

-> xss_check_3() 함수는 functions_external.php에 존재 (include 부분을 참조하면 파악 가능)

 

 

※htmlspecialchars

특수 문자를 HTML 엔티티로 변환

 

 



출처: https://tkdrms568.tistory.com/127?category=853509 [보안 신입사원의 보안 공부]

출처: btyy.tistory.com/entry/HTML-injection%EC%9D%B8%EC%A0%9D%EC%85%98-Reflected%EB%B0%98%EC%82%AC-GET

'Study > Web' 카테고리의 다른 글

[DVWA] Stored XSS  (0) 2021.06.13
[DVWA] Reflected XSS  (0) 2021.06.13
XSS(Cross Site Scripting)  (0) 2021.06.13
[Web]robots.txt  (0) 2021.01.03
HTTP Request, Response  (1) 2020.07.12