kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

Cyber Security

비박스 환경을 활용한 웹 모의해킹 완벽 실습 - HTML Injection - Stored(Blog)

까마기 2020. 1. 22. 18:42
728x90
반응형
HTML Injection - Stored(Blog) : HTML 인젝션 저장(블로그)
 
HTML 태그를 저장하여 관리자가 의도하지 않은 내용을 출력하게 하는 공격이 가능
블로그에 실린 텍스트 필드에 내용을 입력하고 Go 버튼을 클릭하면 입력 내용을 전송하고 다른 페이지로 이동
 
  1. htmli_post.php 페이지의 형식을 사용하기 위하여 개발자 도구로 페이지 형식 복사
  2. 크롬 브라우저 개발자도구(F12 키)에서 body -> div -> form 검색
 
해당 양식을 찾고 마우스 우클릭하여 Edit as HTML 클릭
 
         
 
 
     
 
 
위화면에서 First Name과 Last name 에 각각 입력 후 'Go' 버튼
 
--> 입력한 코드가 실행된 htmli_stored.php 페이지 -> Enrty 안에있는 텍스값에 데이터 입력 후 GO -> htmli_post.php로 이동한것 확인
 
  • 대응방안
난이도 중/.상으로 세팅 -> 다시 태그 입력 후 Submit -> Html 태그를 문자열로 출력
 
 
 
 
  • html injection reflected(post) form 태그 내용을 문자열로 출력한 화면
 
--> 위와 같이 HTML 태그를 입력하여도 해석하지 않는 이유는 우회 단계를 거치기 때문이다.
 
htmli_stored.php 페이지의 코드를 살펴보면 난이도 하에서는 필터링하지 않지만 난이도 중/상은 xss_check_3 함수로 'Entry' 항목에 들어가는 내용을 필터링한다.
 
cd /var/www/bWAPP
vi htmli_stored.php
 
xss_check_3 함수는 functions_external.php에 정의되어 있고 htmlspecialchars 함수로 입력값을 우회한다. htmlspecialchars 함수는 HTML 에서 사용하는 특수문자를 UTF-8로 변환하며, 변환하는 특수문자는 '&, ", ', <, >' 이다.
  • UTF-8
 
 
 
  • 따라서 iframe 인젝션을 막으려면 htmlspecialchars 함수를 사용하여 웹 브라우저에서 iframe 태그에 사용되는 문자들을 HTML 태그로 해석하지 않게 입력 데이터를 UTF-8로 인코딩한다.
 
  • iframe은 HTML 문서 안에서 또 다른 HTML 문서를 출력하는 태그로, 어느 위치든 상관없이 인젝션 공격이 가능하다.
  • iframe 인젝션은 독립적으로 만들 수 있어서 HTML 인젝션 중에서도 공격에 자주 사용
  • HTML 인젝션에서 사용하는 태그와 마찬가지로 페이지 내에 iframe 태그를 인젝션하는데, 주로 악성 URL을 삽입한 후 사이즈를 0으로 설정하여 숨기는 방법을 사용
 
따라서 사용자가 의도하지 않은 악성 웹 사이트에 접속하거나 경고창을 띄울 수 있다.
반응형