컴퓨터공학 전공생의 보안 도전기✌

[Security FACT] 웹해킹 Week 6 본문

Security/Web hacking

[Security FACT] 웹해킹 Week 6

A7uly 2022. 5. 13. 17:46

웹해킹 6주차.pptx
0.37MB

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)

공격자가 서버측의 기본 템플릿 구문을 이용하여 악성 페이로드를 삽입한 다음, 

서버 측에서 그것을 실행시켜 공격하는 방법.

웹 템플릿 엔진마다 사용되는 페이로드가 다름

그렇기 때문에 사용된 웹 템플릿을 파악하여야 함

 

웹 템플릿

자주 사용되는 웹 구축 코드를 모아 둔 틀

출처: https://me2nuk.com/SSTI-Vulnerability/

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

https://medium.com/naver-cloud-platform/ssrf-%EA%B3%B5%EA%B2%A9%EC%9D%98-%ED%94%BC%ED%95%B4-%EC%82%AC%EB%A1%80%EC%99%80-%EB%8C%80%EC%9D%91-1-d0be4b12d10a

'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