반응형

 

오늘은 해킹 기법 중 하나인 SQL Injection에 대해 알아보겠습니다.

시작하기에 앞서 아직 SQL이 무엇인지,

Query (쿼리)가 무엇인지 모르신다면

아래 글을 먼저 읽고 와주시길 바랍니다.

(작성 중)


SQL Injection?

 

SQL은 DB에서 사용하는 프로그래밍 언어이며

Injection 이란 무언가를 주입/주사할 때사용하는 단어로써

SQL Injection은 프로그래밍 언어를 주입하는 해킹 기법입니다.

해커는 보안상의 취약점을 이용하여 대상에게 임의의 SQL 문을 주입하여 실행되게 하고

DB를 공격하는 기법으로 데이터 베이스가 비정상적으로 동작하게 합니다.

인젝션 공격은 OWASP Top10 중 첫 번째 속해 있으며,

공격이 비교적 쉬운 편이고 공격에 성공할 경우

큰 피해를 입힐 수 있는 위험한 공격으로

보안 위협 1순위에 속하는 공격입니다.

SQL Injection 관련 취약점이 존재하면

웹서버의 정보가 모두 털릴 수 있을 정도로

아주 치명적입니다.

2017년 3월에 일어난 “여기어때” 의 대규모 개인정보 유출 사건도 SQL Injection으로피해가 발생하였었죠.

Owasp란?

OWASP는

‘Open Web Application Security Project’의 약자로 비영리 보안 프로젝트 재단을 통칭합니다.

이곳은 SW 보안 향상을 목적으로 운영되는 국제 웹 보안 표준 기구로서

애플리케이션에서 발생할 수 있는 취약점을 분석하고 연구하고 있는데요,

웹 애플리케이션 보안의 위협이 되는 취약점을 TOP 10으로 뽑아 만들고 대비할 수 있도록 알려줍니다.


SQL 인젝션 공격 기법

(대표적인 3가지)

Error Based SQL 인젝션

인증 우회(AB:Auth Bypass)

에러 기반 SQL Injection입니다.입니다.

에러를 이용한 공격 기법으로, 고의로 SQL 문에 에러를 발생시키는 기법으로

에러 메시지를 통해 쿼리문의 구성을 추측하고 DB의 테이블명, 칼럼명, 데이터 내용까지도 알아낼 수 있습니다.

보통 Users 테이블에 있는 모든 정보를 조회하게 됨으로 써

가장 먼저 만들어진 계정으로 로그인에 성공하게 됩니다.

보통은 관리자 계정을 맨 처음 만들기 때문에

관리자 계정에 로그인하여 막대한 2차 피해가 생기는 공격입니다.


Unipon Based SQL 인젝션

데이터 노출(DD:Data Disclosure)

Union 쿼리를 사용한 공격 기법으로 2가지

쿼리를 결합해 정보를 알아낼 때 사용하는 기법으로

공격에 성공하기 위해선 쿼리 두 개의 칼럼 수와 데이터 형이 같아야 한다는 조건이 있습니다.

데이터를 입력하여 참 거짓 값을 알아내고

쿼리 분석기로 칼럼 수를 파악한 후 계정을 열람할 수 있도록 SQL Injection 구문을 작성하여 공격하고,

테이블 열람 구문을 입력하여 모든 사용자의 테이블을 열람할 수도 있습니다.


Blind SQL 인젝션

(Boolean Based SQL, Time Based SQL)

에러 메시지가 발생하지 않는 경우 주로 사용하는 기법으로

특정 쿼리문으로 인한 결과가 참/거짓인 것 만 알 수 있을 때 사용합니다.

예를 들어 어딘가에 로그인을 성공하면 참, 실패하면 거짓 같은 결과를 알 수 있을 때

임의의 SQL 구문을 삽입하여 인가되지 않은 데이터를 열람하고 공격합니다

이러한 특징 때문에 이용하여 주로 데이터 노출을 위해 사용되며,

우편번호 찾기나, 게시판과 같이 데이터를 쉽게 확인할 수 있는 곳에서도 주로 사용됩니다.

요즘은 에러 메시지를 출력하지 않게 웹서버를 구축하고 있어서 웬만한 SQL 공격은 Blind sql 공격으로 진행됩니다


자세한 해킹 방법은 가상 환경을 구축하여

모의 해킹을 통해 알려드리도록 하겠습니다.

https://jdcyber.tistory.com/7

 

버츄얼박스 (VirtualBox)와 칼리 리눅스 (Kali Linux)를 이용한 모의해킹 실습 환경 구축 가이드

오늘은 모의해킹 실습 환경을 구축하는 방법에 대해 소개하려고 합니다. 이번 글에서는 VirtualBox와 칼리 리눅스(Kali Linux)를 사용합니다. 1. VirtualBox 설치 먼저, VirtualBox를 설치해야 합니다. 우리가

jdcyber.tistory.com

Sql 인젝션을 대비하고 보안하는 방법은

아래 글을 참고해 주세요!

(작성 중)

오늘은 SQL 구문을 이용한 해킹 기법인

SQL Injection에 대해 알아봤습니다.

해당 방법은 보안을 위한 연습만 하시길 바라며

악의적인 해킹은 절대 삼가 주시기 바랍니다.


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

오늘은 모의해킹 실습 환경을 구축하는 방법에 대해 소개하려고 합니다.
이번 글에서는 VirtualBox와 칼리 리눅스(Kali Linux)를 사용합니다.

1. VirtualBox 설치

먼저, VirtualBox를 설치해야 합니다.

우리가 모의 해킹 실습을 위한 가상 환경을 만들어 줄 도구입니다.

VirtualBox의 최신 버전을 다운로드하기 위해 VirtualBox 공식 웹사이트

https://www.virtualbox.org/

 

Oracle VM VirtualBox

Welcome to VirtualBox.org! News Flash New July 18th, 2023VirtualBox 7.0.10 released! Oracle today released a 7.0 maintenance release which improves stability and fixes regressions. See the Changelog for details. New July 18th, 2023VirtualBox 6.1.46 release

www.virtualbox.org


웹사이트에서는 여러 운영체제를 위한 다운로드 옵션이 제공됩니다.

본인의 운영체제에 맞는 버전을 다운로드하고 설치하세요.


2. 칼리 리눅스 ISO 다운로드

칼리 리눅스는 모의해킹 및 펜 테스팅에 가장 널리 사용되는 운영체제 중 하나입니다.

칼리 리눅스의 공식 웹사이트 (https://www.kali.org/)에서 ISO 이미지를 다운로드하세요.

 

저는 맥북 M1이라 아래 파일을 설치했습니다.

 

3. VirtualBox에서 칼리 리눅스

가상 머신 생성

VirtualBox를 실행하고 "새로 만들기" 버튼을 클릭하여 가상 머신을 생성합니다.

이름, 타입(리눅스), 버전(Debian 64-bit)을 설정하고, 나머지 설정을 변경합니다 (아래)

메모리(RAM): 칼리 리눅스의 공식 문서에 따르면 최소 2GB의 RAM이 권장됩니다.

그러나 여유가 있다면 4GB 또는 그 이상을 할당하는 것이 좋습니다.

가상 머신의 성능을 향상시키고 여러 프로그램을 동시에 실행하는 데 도움이 됩니다.

 

CPU 코어: 사용 가능한 CPU 코어의 수에 따라 다르지만,

일반적으로 가상 머신에 2개의 코어를 할당하는 것이 좋습니다.

이는 가상 머신의 성능을 향상시키고, 동시에 여러 작업을 수행하는 데 도움이 됩니다.

 

하드 디스크 공간: 칼리 리눅스를 설치하고 업데이트하려면 최소 20GB의 공간이 필요합니다.

그러나 추가의 소프트웨어나 데이터를 저장하려는 경우 더 많은 공간을 할당하는 것이 좋습니다.

 

4. 칼리 리눅스 ISO를 가상 머신에 연결

생성한 가상 머신을 선택하고 설정으로 이동하세요.

"저장소" 메뉴에서 "빈" CD 아이콘을 클릭하고,

우측에 있는 CD 아이콘을 클릭하여 다운로드한 칼리 리눅스 ISO 파일을 선택하세요.

 

5. 칼리 리눅스 설치

가상 머신을 시작하면 칼리 리눅스 설치 환경이 실행됩니다.

설치 언어, 지역, 키보드 구성 등을 설정하고, 가이드에 따라 설치를 진행하세요.

설치가 완료되면 칼리 리눅스를 실행할 수 있습니다.

1. 외부 네트워크 (NAT) 설정

NAT(Network Address Translation)은

가상 머신이 인터넷에 접속할 수 있도록 해주는 네트워크 설정입니다.

VirtualBox에서 해당 가상 머신을 선택하고 '설정'으로 이동합니다.

'네트워크'를 선택하고 '어댑터 1' 탭에서

'네트워크 연결'을 'NAT'로 설정합니다.

이렇게 하면 가상 머신은 호스트 시스템을 통해 인터넷에 접근할 수 있게 됩니다.

 

2. 내부 사설망 네트워크 설정

내부 사설망은 여러 가상 머신 간의 네트워크 통신을 가능하게 합니다.

'네트워크'를 선택하고 '어댑터 2' 탭으로 이동합니다.

'어댑터 사용' 체크박스를 선택하고 '네트워크 연결'을 '내부 네트워크'로 설정합니다.

'네트워크 이름'에는 고유한 이름을 입력하시면 됩니다.

같은 내부 네트워크에 연결하려는 모든 가상 머신은 동일한 네트워크 이름을 사용해야 합니다.

설정이 끝났다면 '확인'을 클릭하여 변경 사항을 저장합니다.

 

root@kali:~# vi /etc/network/interfaces

root@kali:~# service networking restart

 

이제 모의해킹 환경을 위해 외부 네트워크 (NAT)와 내부 사설망 네트워크가 모두 설정되었습니다.

이제 인터넷 연결과 가상 머신 간의 네트워크 연결이 모두 가능해졌습니다.

이 설정들은 모의해킹 실습에 필수적인 요소로, 다양한 네트워크 환경에서의 테스트를 가능하게 합니다.


 

만일 비밀번호를 분실하였다면 아래 글을 참조해주세요

https://jdcyber.tistory.com/57

 

칼리 리눅스 Kli Linux 패스워드 분실 (비밀번호 찾기, 재설정, 변경)

Kali Linux를 설치하고 작업을 하고 있는데 저처럼 어느 날 갑자기 비밀번호가 틀리나고 나오거나 아니면 Root 패스워드를 까먹으셨을 때 아래 방법을 통해 찾아보시기 바랍니다. ​ 아래 내용을 진

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형

+ Recent posts