요구사항: 웹사이트 인터페이스의 인젝션 위험 테스트를 위해 sqlmap 오픈소스 침투 테스트 도구를 사용하세요. SQL 인젝션은 웹 애플리케이션이 사용자의 입력 데이터의 정당성을 판단하지 않거나 필터링이 엄격하지 않다는 의미이며, 공격자가 웹 애플리케이션에서 미리 정의된 쿼리 문장 끝에 추가 SQL 문장을 추가하고, 관리자 몰래 불법 연산을 실행하여 데이터베이스 서버를 속여 무단 쿼리를 실행하게 하여 해당 데이터 정보를 추가로 얻으려 합니다. 간단히 말해,백엔드 인터페이스는 요청된 매개변수를 이어 붙여 SQL 문장을 실행합니다。
복습:
SQLmap은 SQL 인젝션 취약점을 탐지하고 악용하며 데이터베이스 서버를 점령하는 과정을 자동화하는 오픈 소스 침투 테스트 도구입니다. 강력한 탐지 엔진, 궁극의 침투 테스터 특성상 다양한 틈새 기능, 데이터베이스 지문 인식, 데이터베이스 데이터 가져오기, 기본 파일 시스템 접근, 아웃 오브 밴드 연결을 통한 운영체제 명령 실행 등 다양한 스위치를 갖추고 있습니다.
SQLmap은 기본 상태로 바로 작동하며 어떤 플랫폼에서도 작동합니다파이썬 버전 2.6, 2.7, 3.x。
SQLmap 환경 구축
파이썬 다운로드:하이퍼링크 로그인이 보입니다.
SQLMAP 오픈 소스 주소:하이퍼링크 로그인이 보입니다. SQLMAP 명령어 문서:하이퍼링크 로그인이 보입니다.
먼저, 컴퓨터가 파이썬(생략)을 설치하고, 그 다음 git 명령어를 사용해 소스 코드를 다운로드해야 합니다. 방법은 다음과 같습니다:
옵션:
-h, --도움말 기본 도움말 메시지 및 종료 -----기본 도움말 메시지 및 종료 -hh 고급 도움 메시지 보여주고 나가세요----- --버전 번호를 보기 위해 ----------- 프로그램의 버전 번호 및 종료 -v 상세한 세부사항 수준 (0-6, 기본 1) --상세 수준: 0-6 (기본 1)
과녁:
대상 URL을 결정하기 위해서는 다음 옵션 중 적어도 하나를 설정해야 하며, 즉: SQLMap 연산 명령어에 다음 옵션 중 하나가 포함되어야 정상적으로 사용된다
-d DIRECT 데이터베이스 연결을 위한 연결 문자열------------------- -u URL, --url=URL 타겟 URL --------------------- 타겟 URL (예: "http://www.site.com/vuln.php?id=1") - l LOGFILE Burp 또는 WebScarab 프록시 로그 파일에서 Burp 또는 다른 프록시의 로그 파일에서 타겟을 ---- 파싱 -x SITEMAPURL은 원격 sitemap(.xml) 파일에서 타겟을 파싱합니다 --원격 sitemap(.xml) 파일에서 타겟을 파싱합니다 텍스트 파일에 주어진 여러 대상을 BULKFILE -------- 스캔합니다 -r REQUESTFILE 파일에서 HTTP 요청을 로드 ---------------파일에서 HTTP 요청을 로드 -g GOOGLEDORK 검색 결과를 대상 URL로 처리하세요--- -c 구성 INI 파일에서 옵션 로드 -------------- 설정 INI 파일에서 옵션 로드
요청:
다음 옵션들은 목적지 URL에 연결하는 방법을 지정합니다
--method=METHOD 주어진 HTTP 메서드(예: PUT------------------ --data=DATA 데이터 문자열은 POST 메서드를 통해 전송됩니다------------------ --param-del=PARA.. 매개변수 값을 분리하는 기호를 설정하세요--------------------매개변수 값을 분할하는 데 사용되는 문자 --cookie=COOKIE는 HTTP 쿠키 값---------------------- HTTP 쿠키 헤더 값을 지정합니다 --쿠키-델=COO.. 쿠키 값을 분할하는 데 사용되는 문자------------------ SQLMAP을 사용해 주입 지점을 테스트할 때, -v x 매개변수를 사용하여 에코 정보의 복잡도를 지정할 수 있으며, 기본값은 1입니다.
0: 파이썬 오류와 중요한 정보만 표시됩니다. 1: 기본 정보와 경고 정보를 모두 표시합니다. (기본값) 2: 디버그 정보를 동시에 표시한다. 3: 주입된 페이로드가 동시에 표시됩니다. 4: HTTP 요청을 동시에 표시합니다. 5: HTTP 응답 헤더를 동시에 표시합니다. 6: HTTP 응답 페이지를 동시에 표시합니다.
ASP.NET 코어 주입 환경 설정
ASP.NET 코어를 사용해 새 웹 프로젝트를 만들고 인젝션이 포함된 인터페이스를 작성하면 소스 코드는 다음과 같습니다:
테스트 인터페이스:
일반적으로 사용되는 침투 테스트
DBMS 데이터베이스 열거
그리고 SQL Server Profile을 사용하여 다음 그림과 같이 SQL 실행을 캡처할 수 있습니다:
[사용자] 중 [사용자 이름] = 'ITSVSE' 사용자 선택 모두 선택 NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(마스터에서 이름 선택 JSON AUTO를 위한 sysdatabases, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
지정된 데이터베이스의 테이블을 열거합니다
명령어는 다음과 같습니다:
복잡한 HTTP 요청의 경우,-r 매개변수를 통해(파일에서 HTTP 요청을 로드하는 중,Burp Suite 도구를 사용해 패킷 HTTP 요청을 캡처하세요) 텍스트 파일에서 원래의 HTTP 요청을 불러오기 위해 이를 통해 쿠키 설정, 공개 데이터 등 많은 다른 옵션을 건너뛸 수 있습니다.
SQLmap은 강력하며, 더 고급 기능은 문서를 참고하세요. (끝)
|