일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- GIT
- python
- 보안뉴스
- ES6
- 자바스크립트
- numpy
- Oracle SQL
- 보안뉴스 한줄요약
- 깃허브
- 자바스크립트 기본 문법
- 자바스크립트 jQuery
- php
- 보안뉴스 요약
- 자바스크립트 API
- 자바스크립트 element api
- 파이썬
- oracle db
- 다크웹
- 카카오프로젝트 100
- 자바스크립트 객체
- 카카오프로젝트
- 카카오프로젝트100
- 보안뉴스한줄요약
- 자바스크립트 prototype
- 오라클
- 자바스크립트 node
- 보안뉴스요약
- 랜섬웨어
- javascript
- oracle
- Today
- Total
FU11M00N
6-1. bee-box 를 사용하여 SSI Code injection 알아보기! 본문
먼저 SSI 란
SSI란 Server Side Includes의 약자로서 웹페이지 내에서 CGI를 사용하지 않고서도 방문자 카운터, 최종변경일 및 CGI환경변수의 사용등을 간단히 사용할 수 있게 해주는 것으로 CGI환경변수 뿐아니라 일반적인 HTML문서 및 특정명령의 실행결과등을 지정한 위치에 삽입할 수 있는 것입니다!
1. 레벨 low
사진 1-1과 같이 Firstname과 Lastname으로 입력할수있는 칸이 존재하고
Lookup을 입력하면 사용자의 IP가 출력이 됩니다. 그리고 URL을 자세히 보면 ssii.shtml 페이지가 호출되어
ssii.shtml을 통해 SSI 기능을 사용한다는것을알 수가 있습니다.
SSI 지시어는 HTML 주석과 비슷한 형태로 웹 어플리케이션 서버에서 SSI 기능을 설정하지 않으면 브라우저에서 SSI 지시어를 실행하지 않고 무시합니다.
그럼 First name에 SSI 지시어인 <!--#echo var="DATE_LOCAL"-->을 넣어서 현재 시간 정보를 출력해서 수행해주는 것을 입력해보았습니다.
그럼 내부 파일을 출력하기위해 속성을 cmd로 변경해서 시도해보겠습니다.
사진 1-4과 사진 1-5 처럼 cmd 속성을 이용해 ' ls / ' 을 이용해 파일을 출력한 모습입니다!
2. 레벨 High(대응방안)
레벨 상 에서는 사진 1-6과 사진 1-7 처럼 SSI 지시어를 입력하여도 명령어가 실행이 안되고 firstname과 lastname의 입력 값이 그대로 출력이 되었습니다.
그럼 먼저 소스 코드를 보겠습니다.
xss_check_3는 htmlspecialchars 함수를 사용하고 이것은 PHP에서 제공하는 기본 함수입니다.
HTML에서 사용되고 있는 특수문자를 UTF-8으로 반환하고 UTF-8은 유니코드의 한 문자를
1바이트로부터 4바이트까지 인코딩하며 아스키코드도 호환이 가능합니다.
즉 html injection을 대응하기 위해선 htmlspecialchars 함수를 사용하여 HTML에
사용되는 태그들을 인식되지 않게 해야 합니다.
Reference by 비박스 환경을 활용한 웹 모의해킹 완벽실습
'Web Hacking > bee-box' 카테고리의 다른 글
7-2. bee-box 를 사용하여 SQL Injection 알아보기! (0) | 2020.03.19 |
---|---|
7-1. bee-box 를 사용하여 SQL injection 알아보기! (0) | 2020.03.19 |
5-1. bee-box 를 사용하여 PHP Code injection 알아보기! (0) | 2020.03.19 |
4-1. bee-box 를 사용하여 OS Command Injection 알아보기 (0) | 2020.03.18 |
3-1. bee-box 를 사용하여 iframe Injection 공격 알아보기 (0) | 2020.03.18 |