이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 3629|회답: 1

SQLMAP 침투 도구인 SQL 주입 테스트 사용

[링크 복사]
게시됨 2023. 6. 17. 오전 11:10:55 | | | |
요구사항: 웹사이트 인터페이스의 인젝션 위험 테스트를 위해 sqlmap 오픈소스 침투 테스트 도구를 사용하세요. SQL 인젝션은 웹 애플리케이션이 사용자의 입력 데이터의 정당성을 판단하지 않거나 필터링이 엄격하지 않다는 의미이며, 공격자가 웹 애플리케이션에서 미리 정의된 쿼리 문장 끝에 추가 SQL 문장을 추가하고, 관리자 몰래 불법 연산을 실행하여 데이터베이스 서버를 속여 무단 쿼리를 실행하게 하여 해당 데이터 정보를 추가로 얻으려 합니다. 간단히 말해,백엔드 인터페이스는 요청된 매개변수를 이어 붙여 SQL 문장을 실행합니다

복습:

EF 6는 네이티브 SQL 문과 매개변수 주입 문제를 실행합니다
https://www.itsvse.com/thread-10610-1-1.html

EF 코어 시리즈(5)는 SQL 문이나 뷰, 저장 프로시저를 실행합니다
https://www.itsvse.com/thread-9565-1-1.html

C# 매개변수화된 매개변수는 SQL 문장을 실행하는 데 sp_executesql를 사용합니다
https://www.itsvse.com/thread-3111-1-1.html

SQL 인젝션 북 - ASP 인젝션 취약점 완전 접촉
https://www.itsvse.com/thread-2305-1-1.html

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은 강력하며, 더 고급 기능은 문서를 참고하세요. (끝)




이전의:EF 6는 네이티브 SQL 문과 매개변수 주입 문제를 실행합니다
다음:[전송]을 MySQL Advanced: optimize table 명령어
 집주인| 게시됨 2023. 6. 17. 오전 11:21:41 |
다음과 같이 변경하면 SQL 주입 위험이 없습니다:

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com