강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của xk17sin97795
xk17sin97795

câu hỏi đã được viết

Học hack web từ cơ bản đến trung cấp, tất cả trong một khóa học

제가 이해한게 맞는지 궁금합니다

Đã giải quyết

Viết

·

48

0

1. 메타데이터 관련

강사님께서

MSSQL- sys

MYSQL, Maria db, oracle - information_schema

Sqlite - sqlite_master

메타데이터를 보관하는 시스템 데이터베이스? 같은게 이렇게 있다고 알려주셨는데 그럼 sql injection을 시도해볼 때는 sys가 있는지 information_schema이 있는지 sqlite_master가 있는지 확인하고 어떤 데이터베이스를 사용하는지 알아봐야 하나요?

2. sleep()

 

SELECT FROM user WHERE username = 'admin' AND length(password)= 10 AND sleep(5)처럼 사용하는 게 다른 언어 논리식처럼 a and b에서 a가 거짓이면 b는 평가 자체도 하지않는 단락 평가를 이용한 것 맞나요?

강의 잘 보고있습니다. 감사합니다

모의해킹

Câu trả lời 2

1

knockOn님의 프로필 이미지
knockOn
Người chia sẻ kiến thức

안녕하세요 ㅎㅎ 정확하게 이해하신 것 같습니다!

모든 스키마들을 입력하며 데이터베이스를 확인하는 방법도 있지만, https://www.invicti.com/blog/web-security/sql-injection-cheat-sheet 다음과 같이 데이터베이스마다 작동하는 쿼리의 종류가 있기 때문에 많은 방법으로 서버의 데이터베이스를 확인할 수 있습니다 🙂

Sleep또한 AND를 사용하는 이유로 정확합니다 ㅎㅎ

0

안녕하세요, 인프런 AI 인턴입니다. 신예준님께서 메타데이터와 SQL Injection, 그리고 단락 평가에 대하여 질문하신 내용을 확인하였습니다. 아래에서 각 질문에 대한 내용을 설명드리겠습니다.

1. 메타데이터 관련

각 데이터베이스 시스템은 그 자체의 메타데이터를 저장하고 관리하기 위한 시스템 테이블을 가지고 있습니다. 이들은 해당 DBMS에서 사용하는 구조와 메타 정보를 저장합니다.

  • MSSQL의 sys: Microsoft SQL Server에서는 sys가 다양한 시스템 뷰를 제공하여 데이터베이스의 각종 메타데이터를 관리합니다.

  • MySQL, MariaDB, Oracle의 information_schema: 이 스키마는 데이터베이스 객체에 대한 다양한 정보를 제공합니다. 테이블, 컬럼, 뷰 등을 조회할 수 있습니다.

  • Sqlite의 sqlite_master: SQLite에서는 데이터베이스의 테이블, 인덱스, 뷰 및 트리거에 대한 정보를 갖고 있습니다.

SQL Injection을 수행할 때, 어떤 데이터베이스를 사용하는지는 매우 중요합니다. 왜냐하면 사용되는 SQL 구문 및 데이터베이스의 구조가 이 메타데이터 스키마에 의존하기 때문입니다. 이러한 메타데이터 테이블을 통해 데이터베이스의 구성을 파악할 수 있습니다.

2. sleep() 함수와 단락 평가

주신 예에서 SELECT FROM user WHERE username = 'admin' AND length(password)= 10 AND **sleep(5)** 예시는, 예제를 통해 비유하자면, 대부분의 프로그래밍 언어와 쿼리에서도 단락 평가가 적용됩니다. a AND b에서 a가 거짓이면 b는 평가되지 않는다는 특성을 이용하는 것입니다. 그러나 SQL에서는 상황에 따라 다르게 동작될 수 있고, 일부 SQL 시스템에서는 모두 평가될 수 있으니 실험적 확인도 필요합니다.

이를 통해 SQL Injection 공격 시 의도하지 않은 효과를 일으킬 수 있으므로 주의가 필요합니다. 특히나, sleep()을 사용해 응답 시간을 바탕으로 참/거짓을 판별하는 것 또한 시간 기반 공격의 방법 중 하나입니다.

신예준님의 질문이 충분히 해소되셨기를 바랍니다. 자세한 실습 내용은 강의 내용 및 아래 링크를 통해 더 많이 이해하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của xk17sin97795
xk17sin97795

câu hỏi đã được viết

Đặt câu hỏi