해킹

SQL injection

멧둥 2023. 2. 1. 23:36

* SQL injection
사용자의 입력값을 받는 부분에 공격자가 임의의 값을 삽입해서 서버 사이드 스크립트에 있는 sql 쿼리를 완성시켜 DB로 쿼리를 날려 DB 정보를 탈취,삭제,조회 할수 있는 공격

 

* SQL injection 실습

※ DVWA 가상머신에서 ifconfig를 입력 후 ip주소를 확인한 뒤 URL에 입력해서 DVWA 페이지에 접속할 수 있음.
(id: admin, password: password)

→ 3을 입력하면 ID가 3인 계정의 정보가 정상적으로 출력

 

→ 첫 번째 사진의 결과를 통해 SELECT First_name, Surname FROM 테이블이름 WHERE ID='사용자 입력값'과 같은 쿼리를 서버사이드 스크립트에서 사용한다고 예측 가능.

 

a' or 'a'='a를 사용자 입력값으로 입력하면 

SELECT First_name, Surname FROM 테이블이름 WHERE ID='a' or 'a'='a' 과 같이 쿼리가 완성될 것이고

or 연산자에 의해 둘 중 하나라도 참이라면 참이되고, ID가 a인 사용자가 없지만(=거짓이지만)

'a'='a'에 의해 참을 만족하게 되면서 전체 데이터를 가져옴.