본문 바로가기
반응형

SQL Injection10

ORM Injection (CVE-2026-30951) 1. ORM 이란ORM(Object-Relational Mapping, 객체 관계 매핑)은 현대 소프트웨어 개발에서 가장 중요한 개념 중 하나입니다. 한마디로 정의하자면 객체 지향 프로그래밍 언어의 '객체'와 관계형 데이터베이스(RDBMS)의 '테이블'을 자동으로 연결(매핑)해주는 기술입니다.2. ORM 핵심 개념일반적으로 개발자는 프로그래밍 언어(Java, JavaScript, Python 등)를 사용하여 코드를 짰지만, 데이터를 저장하려면 SQL(데이터베이스 언어)을 별도로 공부해서 작성해야 했습니다. ORM은 이 사이의 '번역가' 역할을 수행합니다.3. SQL 없이 DB를 쓸 수 있게 해줍니다.ORM이 없으면 개발자가 직접 SQL을 작성해야 합니다. ORM을 쓰면 SQL 대신 코드로 씁니다.4. 대.. 2026. 5. 1.
DIVA - Input Validation Issues - Part 1 목표: 한번의 검색으로 DataBase의 모든 사용자 정보 출력 '(싱글 쿼터)를 입력했다. Logcat 정보를 보면 SQL 쿼리 SELECT * FROM sqliuser WHERE user = ''' 오류가가 보이는 것을 알 수 있다. ' or '1'='1' -- 참값을 만든면 사용자 정보가 노출되는 것을 알 수 있다. 2021. 1. 4.
SQL Injection SQL Injection - 데이터베이스 비정상적인 쿼리를 입력해 조작하는 취약점이다. 위치 iGoat\SQL Injection\SQLInjectionExerciseController.m 영향 데이터베이스 정보가 노출될 위험이 있다. 진단 SQL Injection 문제에서 i2sec을 먼저 입력했다. 그림 12-1처럼 데이터를 입력했지만 Articles 아무 내용이 보이지 않았다. 이번에는 입력란에 아무 내용을 입력하지 않았다. 아무것도 입력하지 않고 Search 했는데 2개의 기사가 보이는 것을 알 수 있다. 이번에는 SQL Injection 쿼리문 ‘ or ‘1’=’1을 입력했다. 그림 12-4에서 보이지 않는 마지막 기사가 보이는 것을 알 수 있다. SQLInjectionExerciseControl.. 2019. 11. 19.
Time Based Time Based - 영화 검색 결과를 이메일로 보내는 기능을 한다. 참 거짓에 상관없이 검색 결과는 모두 동일한 메시지를 출력한다. 따라서 참을 구별하기 위하여 sleep 함수를 사용하여 인젝션을 시도한다. Level (Low) ‘ or 1=1 # 참인 쿼리를 입력했는데 아무 반응이 없었다. ‘ or 1=2 # 거짓인 쿼리를 입력했는데 아무 반응이 없었다. 참과 거짓일 때 다른 반응을 출력하도록 쿼리에 sleep 함수를 사용한 결과 빙글빙글 5초 동안 waiting 하는 것을 알 수 있다. 거짓일 경우에는 참과 반응이 다르게 아무 반응이 없는 것을 알 수 있다. 아무 반응이 없는 것을 알고 거짓인 것을 알 수 있다. waiting동작하는 것을 보고 참인 것을 알 수 있다. Level (Medium) .. 2019. 8. 25.
Blind SQL Injection 공격 Blind SQL Injection 공격 - 쿼리의 결과를 참과 거짓만으로 만 출력하는 페이지에서 사용하는 공격 한다. - 출력 내용이 참과 거짓 밖에 없어서 데이터베이스의 내용을 추측하여 쿼리를 조작한다. Level (Low) 데이터 aaa를 입력한 결과 데이터베이스에 내용이 존재하지 않는 다고 메시지를 보여준다. Iron Man을 입력해 데이터베이스에 존재하는 것을 알 수 있다. 결과가 참이라는 쿼리문을 ‘ or 1=1 # 입력했는데 데이터베이스에 존재한다는 것을 알 수 있다. 결과가 거짓이라는 쿼리문을 ‘ or 1=2 # 입력했는데 데이터베이스에 존재하지 않는 것을 알 수 있다. id가 1인 영화 데이터베이스 명이 첫 번째 글자가 G인 쿼리에서 참이라는 결과를 알 수 있다. id가 1인 영화 데이터.. 2019. 8. 25.
SQL Injection (Login Form/User) SQL Injection (Login Form/User) Level (Low) Login 1234 Password 1234를 입력해 Invaild credentials! 메시지를 보여주는 것을 알 수 있다. Login bee Password bug를 입력해 bee 계정 정보를 알려주는 것을 알 수 있다. Login ‘ or 1=1 # Password bug를 입력해 A.I.M. 계정 정보를 알려주는 것을 알 수 있다. Level (Medium) Level (Medium)은 그림 1-3처럼 Iron Man ‘ or 1=1# bug 입력해 Invalid credentials! 메시를 보여준다. 대응방안 addslashes 함수를 통해 쿼터(', ") 같은 특수 문자들을 포함하고 있는 문자열에 역 슬래쉬(\).. 2019. 8. 25.
반응형