Research Institute
  • A03:2021-Injection
    2023년 08월 28일 19시 55분 30초에 업로드 된 글입니다.
    작성자: IIIIIIIIIIIIIIIIIIIIl

    소개

    사용자 입력값이나 외부에서 입력된 데이터를 검증 없이 실행하는 경우 발생할 수 있는 취약점을 의미합니다. 이러한 취약점은 악의적인 사용자가 애플리케이션에 악의적인 코드를 삽입하거나, 데이터베이스에 접근하거나, 시스템을 제어할 수 있는 등의 위험을 초래할 수 있습니다. 주요한 Injection 공격 유형으로는 SQL Injection, NoSQL Injection, OS Command Injection, XML Injection, LDAP Injection, 등이 있습니다. 예를 들어, SQL Injection 취약점은 데이터베이스에 SQL 쿼리를 전달할 때, 악의적인 사용자가 입력값에 SQL 문법을 삽입하여 데이터베이스를 조작하는 공격입니다. 이를 통해 데이터베이스의 기밀성, 무결성, 가용성을 침해할 수 있습니다. 이러한 취약점을 방지하기 위해서는 입력값 검증, 출력값 인코딩, 파라미터화된 쿼리 사용 등의 방어 수단을 사용해야 합니다. 또한, 데이터베이스 및 운영 체제 사용 권한을 최소화하고, 보안 업데이트 및 정기적인 감사를 수행하여 취약점을 최소화해야 합니다.

    [그림1] SQL Injection의 동작 원리

    취약한 예

    1. SQL Injection : 입력값에 악성 SQL 쿼리를 삽입하여 데이터베이스를 공격하는 기법입니다.
    2. OS Command Injection : 입력값에 악성 명령어를 삽입하여 시스템을 공격하는 기법입니다.
    3. LDAP Injection : LDAP 서버에 악성 코드를 삽입하여 인증 절차를 우회하는 기법입니다.
    4. XML Injection : 입력값에 악성 XML 코드를 삽입하여 애플리케이션을 공격하는 기법입니다.
    5. Server-Side Template Injection (SSTI) : 웹 애플리케이션에서 사용되는 템플릿 엔진을 이용하여 입력값에 악성 코드를 삽입하여 서버를 공격하는 기법입니다.
    6. OGNL(Object-Graph Navigation Language) Injection : OGNL(Object-Graph Navigation Language)에서 코드를 주입하는 Injection 공격을 수행하는 기법으로 웹 애플리케이션에서 사용되는 OGNL 표현식에 악성 코드를 삽입하여, 서버를 공격하는 기법입니다.
    7. EL(Expression Language) Injection : 웹 애플리케이션에서 사용되는 EL(Expression Language) 표현식에 악성 코드를 삽입하여, 서버를 공격하는 기법입니다.

    참고자료

    https://owasp.org/Top10

    https://www.bugbountyclub.com/

    댓글