정보보안(구버전)/ bWAPP 2019. 1. 26. 14:37
본 내용은 교육 과정에서 필요한 실습 목적으로 구성된 것이며, 혹시라도 개인적인 용도 및 악의적인 목적으로 사용할 경우, 법적 책임은 본인에게 있다는 것을 알려드립니다.
1. Injection
- OWASP Top10 A1 - 악의적인 명령 삽입
- 서버로 전송되는 요청 정보에 악의적인 명령을 삽입하여 불필요한 동작을 실시하거나, 서버/시스템/DB 중요 정보를
획득할 수 있는 취약점이다.
- Ex) HTML 인젝션, SQL 인젝션, PHP 인젝션, XML 인젝션
2. SSI
- SSI : Server Side Includes
- HTML 페이지 전체코드를 수정하지 않고 공통 모듈파일로 관리하여 동적인 내용을 추가하는 기능을 수행함
- SSI를 사용하는 웹페이지는 SSI를 처리하기 위한 .shtml 파일을 생성함
- 만약, SSI를 사용하지 않는 브라우저라면 SSI를 주석으로 처리함
- Ex) 방문자 수 누적, 홈페이지 로고 수정
3. Injection - SSI Injection
- 웹-페이지 접속시 URL에 .shtml 파일이 보이면 SSI 기능을 사용하는 웹-페이지이다.
- 이 시나리오는 SSI 기능을 사용하는 웹-페이지로 파악한 이후, SSI 지시어를 인젝션하여 시스템 정보 및 명령어를 실행
하는 내용이다.
Ex1) Injection - SSI Injection 이해
보안 레벨 및 시나리오 선택
First Name, Last Name 입력 실시 -> 'Lookup' 버튼 클릭
SSI 기능 사용 여부 확인 ('ssii.shtml' 파일 확인) -> 뒤로 가기 이동
마우스 우클릭 -> '페이지 소스' 클릭
ssii.shtml 소스 내용 확인
bee@bee-box:/var/www/bWAPP$ ls -l ssii.php
-rw-rw-r-- 1 root www-data 6546 2014-11-02 23:52 ssii.php
bee@bee-box:/var/www/bWAPP$
bee@bee-box:/var/www/bWAPP$ vi -l ssii.php
~ 중간 생략 ~
{
$line = '<p>Hello ' . $firstname . ' ' . $lastname . ',</p><p>Your IP address is:' . '</p><h1><!--#echo var="REMOTE_ADDR" --></h1>';
// Writes a new line to the file $fp = fopen("ssii.shtml", "w"); fputs($fp, $line, 200); fclose($fp);
header("Location: ssii.shtml");
exit;
}
:q! |
SSI 인젝션 추가 -> 'Lookup' 버튼 클릭
'cat /etc/passwd' 내용 출력 확인
Ex2) 'ssii.php' & 'functions_external.php' 파일 내용 확인
bee@bee-box:/var/www/bWAPP$ ls -l ssii.php
-rw-rw-r-- 1 root www-data 6546 2014-11-02 23:52 ssii.php
bee@bee-box:/var/www/bWAPP$ vi ssii.php
~ 중간 생략 ~
include("functions_external.php");
$field_empty = 0;
function xss($data) {
switch($_COOKIE["security_level"]) {
case "0" :
$data = no_check($data); break;
case "1" :
$data = xss_check_4($data); break;
case "2" :
$data = xss_check_3($data); break;
default :
$data = no_check($data); break;
}
return $data;
}
:q! |
bee@bee-box:/var/www/bWAPP$ gedit functions_external.php
~ 중간 생략 ~
function xss_check_3($data, $encoding = "UTF-8") {
// htmlspecialchars - converts special characters to HTML entities // '&' (ampersand) becomes '&' // '"' (double quote) becomes '"' when ENT_NOQUOTES is not set // "'" (single quote) becomes ''' (or ') only when ENT_QUOTES is set // '<' (less than) becomes '<' // '>' (greater than) becomes '>'
return htmlspecialchars($data, ENT_QUOTES, $encoding);
}
function xss_check_4($data) {
// addslashes - returns a string with backslashes before characters that need to be quoted in database queries etc. // These characters are single quote ('), double quote ("), backslash (\) and NUL (the NULL byte). // Do NOT use this for XSS or HTML validations!!!
return addslashes($data); |
[참고] 'addslashes' 함수
- 특수 문자(', ", \) 앞에 \(역슬래시)를 삽입하여 특수문자 기능을 문자로 이스케이프하는 함수
Ex3) 보안 레벨 'High' 변경
보안 레벨 및 시나리오 선택
SSI 인젝션 추가 -> 'Lookup' 버튼 클릭
SSI 인젝션 실패
[유튜브] 동영상 강의 링크 (구독! 좋아요!!!)
웹해킹 09. bWAPP Injection - Server-Side Included(SSI) Injection https://youtu.be/9OM0tm5Wfak
'정보보안(구버전) > bWAPP' 카테고리의 다른 글
웹 해킹 bWAPP - 11. A1 - Injection - SQL Injection(POST/Search) (0) | 2019.01.30 |
---|---|
웹 해킹 bWAPP - 10. A1 - Injection - SQL Injection(GET/Search) (0) | 2019.01.27 |
웹 해킹 bWAPP - 07. A1 - Injection - OS Command Injection (0) | 2019.01.24 |
웹 해킹 bWAPP - 06. A1 - Injection - iframe Injection (0) | 2019.01.24 |
웹 해킹 bWAPP - 05. A1 - Injection - HTML Injection - Stored(Blog) (0) | 2019.01.24 |