| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 칼리리눅스
- 자바복습
- suninatas
- CTF
- 포트스캔
- 앱
- artifact
- 자바입문
- Forensic
- ReverseEngineering
- 포렌식
- 메모리포렌식
- picoCTF
- 안드로이드리버싱
- pico
- 와이어샤크
- follina
- 컴공
- 소프트스퀘어드
- 9012
- 혼자공부하는자바
- 볼라틸리티
- 아티팩트
- Burpsuite
- KaliLinux
- 백준
- 3wayhandshaking
- 문제풀이
- baekjoon online judge
- 버프스위트
- Today
- Total
컴퓨터공학 전공생의 보안 도전기✌
[Security FACT] 웹해킹 Week 6 본문
SQL Injection
SQL 쿼리문을 조작하여 서버의 데이터베이스의 데이터를 변조하거나 허가되지 않은 정보에 접근하는 공격.
주로 사용자 입력 데이터를 제대로 검증하지 못한 경우 발생.
공격기법
Error based SQL Injection
논리적 에러 이용 ex) ' or '1'='1
UNION based SQL Injection
Union 명령어(두 개의 쿼리문에 대한 결과를 통합한 하나의 테이블) 이용
정상적인 쿼리문에 하나의 추가 쿼리를 삽입하여 정보 획득
조건 - Union 하는 두 테이블의 컬럼 수, 데이터 형이 동일해야만 가능!
ex) 'UNION SELECT 1,1 --
Blind SQL Injection - Boolean based SQL
쿼리를 통해 나온 True, False의 정보만 출력되는 경우. 이를 이용해 정보를 획득하는 것
substr, limit, ASCII 등을 통해 얻어내고 싶은 정보의 범위를 제한시켜가며 정보를 알아냄
ex) lord of SQL Injection 4번 orc
Blind SQL Injection - Time based SQL
쿼리 결과를 특정 시간만큼 지연시키는 것
True, False가 출력되지 않고 항상 출력이 동일한 경우,
응답 시간을 측정하여 그 시간 차이로 True, False 여부를 판별
sleep, benchmark, wait 등을 사용
DB 구조를 파악
ex) 'abc123' OR (LENGTH(DATABASE())=1 (SLEEP 할 때까지 시도) AND SLEEP(2))
Stored Procedure SQL Injection
웹에서 Stored Procedure에 대한 접근 권한을 가져 서버를 공격하는 방법.
Stored Procedure = a set of SQL statements with an assigned name
일련의 쿼리문들이 RDBMS라는 곳에 한 그룹으로 저장되어 여러 프로그램에서 재사용되거나 공유되는 것
Mass SQL Injection
툴을 사용해 한 번의 공격으로 다수의 DB 값을 변조하는 공격
일부 HEX 인코딩 방식과 전체 HEX 인코딩 방식이 있음
MS-SQL, ASP, IIS 웹서버 등이 이 공격에 취약
SQL DML 구문
SELECT - 데이터 조회
ex) select * from TABLE_NAME
INSERT - 데이터 삽입
ex) insert into TABLE_NAME values('hello', 'efgh')
UPDATE - 데이터 수정
ex) update TABLE_NAME set 'name' = 'abcd' where 'id'='hello'
DELETE - 데이터 삭제
ex) delete from TABLE_NAME where 'name'='hello'
Command Injection
웹에서 시스템 명령을 사용할 때 다른 Command를 삽입하여 두 개의 명령이 실행되도록 하는 공격
Shell
명령어와 프로그램을 실행할 때 사용하는 인터페이스
운영체제에서 사용자가 입력하는 명령어를 읽고 대신 실행해주는 프로그램
ex) Linux bash shell, window powershell
SSTI (Server Side Template Injection)
공격자가 서버측의 기본 템플릿 구문을 이용하여 악성 페이로드를 삽입한 다음,
서버 측에서 그것을 실행시켜 공격하는 방법.
웹 템플릿 엔진마다 사용되는 페이로드가 다름
그렇기 때문에 사용된 웹 템플릿을 파악하여야 함
웹 템플릿
자주 사용되는 웹 구축 코드를 모아 둔 틀

Path Traversal
서비스에서 사용자로부터 받은 입력이 path 형태의 처리 로직을 가지는 경우,
공격자가 이를 조작해 원하는 경로로 접근하여 동작을 수행하는 공격 기법
보통 파일 처리하는 과정에서 발생
SSRF (Server Side Request Forgery)
공격자가 서버를 속여 비정상적인 동작을 유도하는 공격 기법
기능 별로 서버를 분리하여 구축한 경우 혹은 사용자가 전달한 데이터를 가공해주는 서비스에서 주로 발생
CSRF와의 차이점
CSRF는 공격자가 사용자의 웹 브라우저를 하이재킹해 서버에 변조된 요청을 보내는 공격이지만,
SSRF는 아예 사용자를 거치지 않고, 웹 어플리케이션에서 서버로 변조된 요청을 보내는 공격임
즉 사용자와 웹 어플리케이션이 가지는 권한의 범위가 다르기 때문에 SSRF가 더 큰 영향을 줄 수 있음
Reference
https://m.blog.naver.com/lstarrlodyl/221837243294
https://choco4study.tistory.com/10
https://www.techtarget.com/searchoracle/definition/stored-procedure
'Security > Web hacking' 카테고리의 다른 글
| [Security FACT] 웹해킹 Week 5 (0) | 2022.05.06 |
|---|---|
| [Security FACT] 웹해킹 Week 4 (0) | 2022.04.29 |
| [Security FACT] 웹해킹 Week 3 (0) | 2022.04.08 |
| [Security FACT] 웹해킹 Week 2 (0) | 2022.04.01 |
| [Security FACT] 웹해킹 Week 1 OT (0) | 2022.04.01 |