실습 환경 구축
- VMware에서 Window 2000 웹서버(Victim), Window7(Attacker)를 설치하여 실습하였다.
- 웹서버에는 기본적인 ASP 웹 페이지를 구성하였다.
Blind SQL Injection 개념
- Server에서 내부 오류 메시지를 외부에 공개되지 않도록 구성한 경우 Type 변환 오류 메시지를 사용한 Database 구조 파악이 불가능하다.
- 이 경우 substring()을 사용하여 특정 문자열을 한글자씩 찾아가는 Blind SQL Injection 공격을 시도해볼 수 있다.
- Target 사이트에서 참과 거짓을 구분할 수 있는 페이지가 존재해야 한다.
1) Web Browser를 통해 GET 메소드 메시지 획득
- GET 메서드를 얻기 위해서 Paros를 통해 게시판에서 게시물을 클릭할 때 보내는 URL을 가져온다.
2) Kali Linux에서 sqlmap 사용하여 DB이름을 확인하기
- sqlmap을 사용하여 DB 목록을 확인할 수 있다.
sqlmap -u "http://www.test.com/board/board_view.asp?num=110" --abs
- how do you want to proceed? 메시지에서 C를 누른다.
- 나머지 옵션에 모두 Y를 누른다.
- Database 이름을 확인할 수 있다.
2.1) Wireshark을 통한 패킷 확인
- Kali Linux 앞에서 패킷을 캡처해보면 UNION, SUBSTRING, SELECT 문 등을 사용하여 임의의 질의문을 HTTP 프로토콜을 통해서 서버에 전송하는 것을 확인할 수 있다.
3) Kali Linux에서 sqlmap 사용하여 테이블 이름을 확인하기
- 위에서 알아온 DB이름을 가지고 sqlmap을 통해 webhack DB의 테이블 목록을 확인한다.
sqlmap -u "http://www.test.com/board/board_view.asp?num=110" -D webhack --table
- 총 6개의 테이블이 있는 것을 확인할 수 있다.
4) 테이블 안에 있는 Column 확인하기
- 위에서 알아온 테이블을 가지고 sqlmap을 통해 member테이블의 칼럼을 확인한다.
sqlmap -u "http://www.test.com/board/board_view.asp?num=110" -D webhack -T member --columns
- 총 11개의 칼럼이 있는 것을 확인할 수 있다.
5) 칼럼 안에 있는 Data 확인하기
- 위에서 알아온 칼럼을 가지고 sqlmap을 통해 사용자 아이디와 비밀번호를 알아낸다.
- 총 42개의 member테이블 안에 있는 모든 사용자들의 아이디와 비밀번호를 알아올 수 있다.
'Hacking & Security > Kali Linux' 카테고리의 다른 글
[Kali Linux] Brute Force Attack (Johnny, John the Ripper) (0) | 2020.01.22 |
---|---|
[Kali Linux] Paros를 통한 Cookie 값 변조 공격 (0) | 2019.12.31 |
[Kali Linux] Route Injection 공격 (OSPF) (0) | 2019.11.13 |
[Kali Linux] Route Injection 공격 (EIGRP) (0) | 2019.11.13 |
[Kali Linux] Route Injection 공격 (RIP) (0) | 2019.11.12 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊