1

SQL Injection - Union

SQL Injection - Union

노아의 블로그

    목차
반응형

Union은 두개 이상의 테이블을 하나로 뭉치는? 집합하는 그런것이다.

그니까 

MEMBER 테이블에 Id와 Password 컬럼이 있다고 가정하고

각각 2개의 데이터 one,1234 two,4321 이라는 id/password 값이 있다고 가정한다.

그렇다면 

SELECT * FROM MEMBER

UNION SELECT '1111','2222' 

이렇게 한다면. 어떤 결과가 나올까? 바로 

one 1234

two 4321

1111 2222

라는 결과가 나온다.

 

눈치를 채신분도 있겠지만 굉장히 위험한 녀석이다. 바로 결과를 변조하는 것이다.

Union을 통해서 id가 1111,2222라는 결과를 넣었지만. 이것을 admin으로 바꾼다면?

 

SELECT * FROM MEMBER

UNION SELECT 'admin','1234' 

 

결과가 admin,1234라는것이 있을것이다.

로그인은 SQL문의 결과를 통해서 결과가 있냐 없냐를 통해 로그인 성공 여부를 나눈다.

따라서 결과를 admin,1234로 변조해버리면 해커는 id=admin,password =1234라는 계정으로 로그인 시도가 가능한것이다.

 

만약. 쿠키나 세션에 id정보를 저장해놓고 입력 안하고 정보를 통해 로그인하는 사이트가 있다면 admin의 계정 탈취가 가능할수도 있다. 그것이 아니라도 원래 없던 정보로 로그인하는것이기 때문에 상당한 취약점이다.(admin페이지) 주의해야한다.

 

하지만 Union은 컬럼의 갯수를 정확히 알아야한다는 점이 있기때문에 쉽지는 않을것 같다.

아마 실제 실무에서는 자기 자신이 계정을 생성해서 마이페이지 들어가서 어느 정보가 있는지 확인해서 몇개의 컬럼이 있느냐 생각해서 하는듯 하다.

반응형

'해킹 > SQL Injection' 카테고리의 다른 글

로그인 로직 생각1  (0) 2023.04.23
SQL Injection - Union - 절차적 해킹  (0) 2023.04.21
SQL Injection 학습  (0) 2023.04.14