SQL 인젝션 공격
ETC./Security

SQL 인젝션 공격

뉴비뉴 2018. 4. 25.

SQL 인젝션 공격

 

데이터베이스에 전송되는 SQL 커리문을 조작하여, 데이터를 변조하거나 허가되지 않은 정보에 접근
웹사이트의 회원정보나 개인정보를 빼돌리는데 사용된다.

 

사례

 

2011년 소니 해킹, 100만명의 회원정보 350만개의 디지털 쿠폰
2015년 뽐뿌 해킹,190만 회원정보 유출
2015년 어나니머스 WTO 해킹, 수천명의 각 국 재직자 정보를 유출

 

WHERE 구문 공격

 

SELECT name, email FROM users WHERE ID = '1'


WHERE ID = '1' // ID 가 1인 경우에

FROM users // users 이라는 사용자 테이블에서

SELECT name, email // name 과 email 을 가져오라는 것

 

결과  ID가 1인 사용자 정보(name,email) 가 클라이언트에게 전달된다.

 

WHERE ID = '1' or '1'='1' '1'
WHERE ID = '1' 아이디가 1이거나
or '1' = '1' '1' 은 1이다(항상 조건이 참이 되는 구문) 아이디가 1인 데이터뿐만아니라 

아이디가 다른 데이터도 항상 조건이 참이기 때문에 

 

UNION 공격

 

ID = '1' union select name, pw from users#

 

SELECT name, email FROM users WHERE ID = '1' union select name, pw from users#

 

union 은 합집합으로 두 개의 select 구문의 결과를 모두 포함시키는 키워드이다.
원래 실행되어야 하는 아이디가 1인 사용자 정보 이외에도 뒤에 select 구문 결과값을 포함하게 되는데

뒤에 같은 경우에는 where 구문이 없기 때문에 모든 사용자의 name, pw 를 포함한다.

users# # 뒤에 내용은 주석처러 된다. 해커가 원하는 결과만 얻을 수 있게 사용할 수 있다.

 

결과  모든 사용자의 이름과 비밀번호 리턴

'ETC. > Security' 카테고리의 다른 글

WAPPLES  (0) 2018.06.01
네트워크 해킹과 보안  (0) 2018.04.22
하드디스크 점검 프로그램, 하드디스크 교체 초기설정  (0) 2018.04.20
Traceroute 이용 라우터IP 확인  (1) 2018.04.17
간단한 IP 주소 추적  (0) 2018.04.10

댓글

💲 추천 글