일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- 객체
- CIDR #서브넷 #Network #ip 주소고갈
- snedmail #linux #정보보안기사 #정보보안산업기사 #mail protocol
- PYTHON
- 디지털 포렌식
- 정보보안기사 #정보보안산업기사 #클라우드컴퓨팅 #보안 #컴퓨팅보안
- 안드로이드 #스레드 #핸들러 #예제
- 탈중화
- 포렌식
- Forensic #CTF #디지털포렌식 #disk forensic
- 파일 접근 권한 #linux #chown #chmond #umask #명령어
- 디지털포렌식챌린지 #dfchallenge #디지털포렌식 #Forensic
- java
- HTML Injection #bWAPP
- 디지털포렌식 연구회 워크샵 #디지털포렌식 #디지털포렌식챌린지 #Forensic #ctf #정보보호학회
- 안드로이드 #서비스 #안드로이스 서비스 #Android #java
- #정보보안 #어셈블리 #저급언어 #기계어 #it #정보보안
- EnCase #mount #Forensic #image mount
- 비박스 #웹취약점분석 #버그바운티 #bee-box #웹 #모의해킹
- It
- 정보보안기사 #정보보안산업기사 #2020년 정보보안기사 #시험일정
- 프로그래밍
- forensic
- 코딩
- 파이썬
- Injection #Reflected #웹취약점
- evm
- Forensic CTF #disk Forensic #windows file analyzer #WFA #Codegate 2012 F100
- 메소드
- Today
- Total
Jsecurity
sqlmap (SQL 인젝션 공격) 도구 본문
SQL Injection
SQL Injection 이란 Web hacking 기법 중 하나이다. 웹 애플리케이션의 뒷단에 있는 Database에 질의(쿼리를 보내는 것)하는 과정 사이에 일반적인 값 외에 악의적인 의도를 갖는 구문을 삽입하여 공격자가 원하는 SQL 쿼리문을 실행하는 기법이다.
SQL Injection 공격의 종류
인증 우회 (AB : Auth Bypass)
데이터 노출 (DD : Data Disclosure)
원격명령 실행 (RCE : Remote Command Excute)
대응방안
1. 문자열 필터링 및 길이 제한
데이터베이스와 연동하는 스크립트의 모든 파라미터를 점검하여 사용자의 입력 값에 이용되는 특수문자(‘, “, \, ;, :, %, space, --, # 등) 및 SQL 관련 문자열(select, union, insert, delete, update 등)을 필터링한다.
2. 확장 프로시저 제거
MS-SQL의 경우 확장 프로시저(mater, xp_cmdshell, xp_startmail, xp_sendmail 등)는 운영체제 명령 실행 및 SQL 인젝션에 이용되기 때문에 제거하는 것이 안전하다.
3. DB 사용자 권한 제한
웹 프로그램을 사용하는 DB 사용자의 권한을 제한한다.
4. 선처리 질의문(Prepared Statement) 이용
선처리 질의문을 이용하면 SQL 쿼리문을 선처리하여 이후 입력되는 변수 값을 항상 문자열 변수로 다루기 때문에 사용자가 악의적인 SQL 구문을 삽입하더라도 SQL 문에 영향을 미치지 않아 SQL 인젝션이 발생하지 않는다.
5. hash function 사용
사용자의 입력값을 DB 그대로 저장하고 사용하지 말아야 한다.
sqlmap 실행순서: 프로그램 > 즐겨찾기 03 - Web Application Analysis > sqlmap
sqlmap 란?
프로세스 자동 탐지, SQL Injection 관련 exploting 그리고 DB 서버에 대한 질의를 수행하는 오픈 소스 침투 테스트 툴, 보통 취약점 점검 툴을 이용하여 간단한 SQL Injection 취약점을 찾고 SQLamp 을 이용하여 DB 정보를 획득한다.
security Level : Low
IP address Text box 내용에 특수문자를 기입하면 나오는 SQL syntax error 창이 나온다.
해당창의 URL을 수집한다. (http://192.168.56.101/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#)
그리고 우리는 sqlmap 을이용하여 DB를 알아내기위해 Cookie값을 수집한다.
파이어폭스의 F12 키를 입력하여 개발자 모드의 Console 탭의 명령줄에 document.cookie 를 입력하면
해당 cookie가 나오는 것을 볼 수있다.
모든 파라미터에 대해 SQL 인젝션 공격을 하는 명령 입니다. id=1의 뒤에있는 %27&은 지웁니다.
아래의 명령을 입력하면 users 테이블이 다 보이게 된다.
sqlmap -u "http://192.168.56.101/DVWA/vulnerabilities/sqli/?id=1Submit=Submit#" --cookie="security=low; PHPSESSID=dt2fogn4iutmm1suuln22d7f14" -p id -D dvwa -T users --dump
주의사항: 해당 사이트의 IP 주소와 쿠키값은 다르기때문에 수정해주셔야 합니다.
패키지 설명
https://tools.kali.org/vulnerability-analysis/sqlmap
도움이 많이 된 사이트
https://www.youtube.com/watch?v=7mkIWccR7Mw
'Linux > Kali-Linux' 카테고리의 다른 글
kali- John The Ripper 도구 (0) | 2019.05.06 |
---|---|
Kali-commix 도구 사용하기 (0) | 2019.04.24 |
commix 명령 인젝션(command injection) 도구 (0) | 2019.04.22 |
golismero 취약점 스캔 도구 (0) | 2019.04.20 |
Dmitry 네트워크 스캐닝 (0) | 2019.04.20 |