일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- web shell
- sql developer
- blind sql injection
- SQL ORDER BY
- sql injection 공격
- sql select
- owasp 가이드
- 잘못된 접근 제어
- ISMSP
- web shell공격
- 보안 설정 오류
- Open Web Application Security Project
- ssrf
- SQL 쿼리문
- 해킹
- server side request forgery
- SQL
- sql join
- sql 개발자
- sql 공부
- CSRF
- sql 문법
- SQLD
- sql group by
- owasp 취약점
- 정보보안컨설팅
- 암호화 실패
- owasp 2022
- SQL 자격증
- sql injection
- Today
- Total
MetaCODING
SQL 인젝션 sql injection 공격 및 예방 복습 본문
웹 서비스 기반 주요 위협 SQL Injection
[SQL Injection] 내가 입력할 수 있는 영역에 진단을 수행함(입력값) 웹 사이트를 둘러보다가 DB에 질의할 것 같은 페이지에서 진단을 수행 ※인증우회 - ' or 1=1 -- - ' or '1'='1 - ' or 'a'='a - ' or '222222'='222
metacoding.tistory.com
SQL 인젝션(SQL Injection)은 웹 애플리케이션 보안에서 중요한 주제 중 하나다.
SQL 인젝션은 악의적인 공격자가 웹 애플리케이션의 입력 필드를 통해 악성 SQL 쿼리를
실행하도록 하는 공격 기술이다. 이로 인해 데이터베이스에 무단 접근하거나 데이터를 삭제, 수정 또는
탈취 등의 피해를 입을 수 있다.
SQL 인젝션 공격은 사이트에 대한 해킹을 초보자도 쉽게 할 수 있으며,
인풋을 이용하여 강제 로그인, DB 전체 호출, DB 삭제와 같은 위험한 행위가 가능하고
따옴표나 유니온 셀렉트와 같은 SQL 문법을 이용하면 취약점을 발견하고 해결할 수 있다는 것도 알 수 있다.
OWASP Juice Shop
juice-shop.herokuapp.com

SQL 인젝션 공격을 위해 따옴표를 입력하면 에러 메시지가 바뀌는 것으로 쉽게 공격할 수 있다.

SQL 인젝션 공격은 코드를 대충 작성하면 발생할 수 있다.
따옴표를 입력하면 에러 메시지가 바뀌는 것으로 쉽게 공격할 수 있다.


에러 메시지를 자세하게 작성하면 해커들에게 도움이 되므로 주의가 필요!!
SQL injection으로 강제 로그인, 테이블 전체 빼오기, db 삭제 등의 행위가 가능하다!!
'강제 로그인'

가짜 뱅킹 사이트를 방문하여 해킹 연습을 해보면, SQL 문법의 일부인 따옴표로 인해
이상한 SQL 문법 오류가 발견할 수 있고 SQL injection으로 인한 해킹 공격 가능성을 파악할 수 있다.

https://zrr.kr/K7fI
Altoro Mutual
Online Banking with FREE Online Bill Pay No stamps, envelopes, or checks to write give you more time to spend on the things you enjoy. Real Estate Financing Fast. Simple. Professional. Whether you are preparing to buy, build, purchase land, or construct ne
demo.testfire.net
'관리자 권한 탈취'

admin' OR 1=1 --

계정 탈취 성공!!!
'테이블 출력'
Home of Acunetix Art
welcome to our page Test site for Acunetix WVS. Warning: This is not a real shop. This is an example PHP application, which is intentionally vulnerable to web attacks. It is intended to help you test Acunetix. It also helps you understand how developer err
testphp.vulnweb.com

-1 UNION SELECT 1,uname,pass FROM users WHERE uname='test'

SQL injection으로 admin 권한을 탈취하고, 유니온 셀렉트 문법을 사용하여 다른 테이블의 내용도 출력이 가능하다.
SELECT * FROM accounts
WHERE id='유저가 입한 id' AND pw='유저가 입력한 pw'

만족하는 모든 행을 출력하는 경우, 항상 TRUE이므로 테이블의 모든 행이 출력
맨 위에 있는 계정은 대부분 테스트 계정 혹은 admin 계정이므로, 이를 이용해 어드민 권한 획득이 가능하다!!
또한,
유니온 셀렉트 문법을 사용하면 다른 테이블의 내용도 출력 가능한데,
예를 들어,
작가 번호를 입력하면 작가의 소개 글을
db에서 꺼내서 보여주는 사이트에서 유니온 셀렉트를 사용하여 다른 테이블의 내용도 출력이 가능하다!!
(SQL 인젝션 공격에서 패스워드와 유저 이름이 출력되는 원리)

정리하자면,
SQL 인젝션 공격에서는 입력란에 SQL 명령어를 입력하여 해커가 데이터베이스에 접근 가능!!
이를 이용하여 패스워드와 유저 이름을 출력하는 등 코드를 보여주며 이러한 공격 방법을 알아야 방어할 수 있다.
SQL(Structured Query Language) Injection 공격 개념 취약점
웹서버와 DB서버가 연동되는 웹 서비스 중 사용자의 입력을 받는 화면이 로그인 화면, 검색 입력 창 등 존재하고 입력 받는 문자열에 별도의 처리없이 데이터베이스 조회를 위한 SQL 구문이 사용
metacoding.tistory.com

'보안' 카테고리의 다른 글
RTO(Recovery Time Objective, 복구 시간 목표) RPO(Recovery Point Objective, 복구 시점 목표) (0) | 2023.10.10 |
---|---|
ISMS-P (0) | 2023.10.09 |
U-01 root 계정 원격 접속 제한Account Remote Access Restrictions(feat. telnet, ssh, bfa, da) (0) | 2023.09.23 |
Blind SQL Injection 공격 및 복습 (0) | 2023.09.21 |
IDC(Internet Data Center)와 DR(Disaster Recovery)의 필요성(feat. SK C&C의 IDC화재, 카카오톡 먹통) (0) | 2023.09.19 |