일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- zerowhale
- 삼성SDS
- 해킹존
- #bWAPP #모의해킹 #웹해킹
- hackingzone
- bugcamp
- #DVWA #XSS #Stored XSS #웹해킹 #모의해킹
- 버그바운티
- #DVWA #CSRF #웹해킹 #모의해킹
- #webhacking #모의해킹 #웹해킹
- bugbounty
- Today
- Total
AIAS
[bWAPP] HTML Injection (Level - Low, Medium) 본문
HTML Injection?
공격자가 악의적인 HTML 코드를 삽입하여 사용자에게 정상적으로 서비스 중인 HTML 화면이 불필요한 HTML 코드가 삽입된 사이트로 접속되어 불필요한 화면을 제공하거나 악성 웹사이트로 강제로 이동 시켜 정보탈취 등의 행위가 가능함.
HTML 코드가 Stored DB상에 저장되어 웹페이지가 호출될 시 악의적으로 삽입된 코드가 사용자에게 노출되는 방식이며, Reflected는 악의적인 HTML 코드가 운영 중인 서비스 DB상에 저장되는 Stored 방식이 악성코드가 삽입된 URL로 사용자가 접속하도록 유도 시켜 실행되게 하는 반사(Reflected) 기법임.
실습환경
- bWAPP (buggy Web APPlication)
: OWASP 취약점이 주로 반영된 모의해킹 실습 환경
Reflected HTML Injection - GET (Level - Low)
Last name 필드에 '여기'라는 단어에 하이퍼링크를 포함한 HTML 코드 삽입 시도
: <p><a href="https://414s.tistory.com/">여기</a>클릭</p>
'여기'라는 단어에 하이퍼링크가 삽입되어 사용자가 해당 단어를 클릭 시 공격자가 의도한 사이트로 접속될 수 있음을 확인 가능하며 POST 방식에서도 동일한 방식으로 취약점 도출 가능
Reflected HTML Injection - POST (Level - Medium)
Medium레벨에서는 사용자의 입력 값 중 HTML 태그가 생성되기 위한 <,>를 replace 구문을 통해서 인식되지 않는 값으로 반환해주고 있으나, 하단에 urldecode를 제공해주기에 사용자가 HTML 태그값을 url encoding하여 보내게 되면 우회할 수 있다.
인코딩 사이트에서 HTML 코드를 URL 인코딩한 후 삽입 시도 (인코딩 사이트 : ostermiller.org/calc/encode.html)
: %3Cp%3E%3Ca+href%3D%22https%3A//414s.tistory.com/%22%3ECLICK%3C/a%3EHERE%AD%3C/p%3E
URL 인코딩된 값으로 인하여 HTML 태그 값을 인식하지 못하여 필터링되지 못하였고 URL 디코딩을 수행주었기에 HTML 태그가 삽입되어 동작함을 확인
대응방안
- HTML 태그가 인식되지 않도록 <,> 값과 같은 특수문자들을 필터링해주고 URL 디코딩 기능이 꼭 필요한 경우 필터링 구간 앞에 넣거나 URL 인코딩된 값도 필터링 수행 필요
'WEB > bWAPP' 카테고리의 다른 글
[bWAPP] Insecure DOR - Order Tickets (Level - Low, Medium) (0) | 2020.12.04 |
---|---|
[bWAPP] Session Mgmt - Admin Portal (Level - Low, Medium) (0) | 2020.12.04 |
[bWAPP] PHP Injection (Level - Low) (0) | 2020.12.04 |
[bWAPP] HTML Injection - Current URL (Level - Low) (0) | 2020.12.03 |