SQL インジェクションのセキュリティ上の欠陥を検出して悪用するプロセスを自動化する、高度なクロスプラットフォーム ツールです。
pip3
python3 -m pip install --upgrade -r requirements.txt
python3 setup.py install
またはpython3 -m pip install -e .
ghauri --help
コマンドを使用して ghauri にアクセスして実行できるようになります。または
GitHub リポジトリのクローンを作成することで、Ghauri の最新バージョンをダウンロードできます。
git clone https://github.com/r0oth3x49/ghauri.git
--proxy
をサポートします。-r file.txt
に切り替えます--start 1 --stop 2
--skip-urlencode
--sql-shell
(実験的)--fresh-queries
--hostname
--update
ghauri --update
コマンドを使用して、ghauri の最新バージョンを取得します。--ignore-code
--count
-m
(実験的)
Author: Nasir khan (r0ot h3x49)
usage: ghauri -u URL [OPTIONS]
A cross-platform python based advanced sql injections detection & exploitation tool.
General:
-h, --help Shows the help.
--version Shows the version.
--update update ghauri
-v VERBOSE Verbosity level: 1-5 (default 1).
--batch Never ask for user input, use the default behavior
--flush-session Flush session files for current target
--fresh-queries Ignore query results stored in session file
--test-filter Select test payloads by titles (experimental)
Target:
At least one of these options has to be provided to define the
target(s)
-u URL, --url URL Target URL (e.g. 'http://www.site.com/vuln.php?id=1).
-m BULKFILE Scan multiple targets given in a textual file
-r REQUESTFILE Load HTTP request from a file
Request:
These options can be used to specify how to connect to the target URL
-A , --user-agent HTTP User-Agent header value
-H , --header Extra header (e.g. "X-Forwarded-For: 127.0.0.1")
--host HTTP Host header value
--data Data string to be sent through POST (e.g. "id=1")
--cookie HTTP Cookie header value (e.g. "PHPSESSID=a8d127e..")
--referer HTTP Referer header value
--headers Extra headers (e.g. "Accept-Language: frnETag: 123")
--proxy Use a proxy to connect to the target URL
--delay Delay in seconds between each HTTP request
--timeout Seconds to wait before timeout connection (default 30)
--retries Retries when the connection related error occurs (default 3)
--confirm Confirm the injected payloads.
--ignore-code Ignore (problematic) HTTP error code(s) (e.g. 401)
--skip-urlencode Skip URL encoding of payload data
--force-ssl Force usage of SSL/HTTPS
Optimization:
These options can be used to optimize the performance of ghauri
--threads THREADS Max number of concurrent HTTP(s) requests (default 1)
Injection:
These options can be used to specify which parameters to test for,
provide custom injection payloads and optional tampering scripts
-p TESTPARAMETER Testable parameter(s)
--dbms DBMS Force back-end DBMS to provided value
--prefix Injection payload prefix string
--suffix Injection payload suffix string
--safe-chars Skip URL encoding of specific character(s): (e.g:- --safe-chars="[]")
--fetch-using Fetch data using different operator(s): (e.g: --fetch-using=between/in)
Detection:
These options can be used to customize the detection phase
--level LEVEL Level of tests to perform (1-3, default 1)
--code CODE HTTP code to match when query is evaluated to True
--string String to match when query is evaluated to True
--not-string String to match when query is evaluated to False
--text-only Compare pages based only on the textual content
Techniques:
These options can be used to tweak testing of specific SQL injection
techniques
--technique TECH SQL injection techniques to use (default "BEST")
--time-sec TIMESEC Seconds to delay the DBMS response (default 5)
Enumeration:
These options can be used to enumerate the back-end database
management system information, structure and data contained in the
tables.
-b, --banner Retrieve DBMS banner
--current-user Retrieve DBMS current user
--current-db Retrieve DBMS current database
--hostname Retrieve DBMS server hostname
--dbs Enumerate DBMS databases
--tables Enumerate DBMS database tables
--columns Enumerate DBMS database table columns
--count Retrieve number of entries for table(s)
--dump Dump DBMS database table entries
-D DB DBMS database to enumerate
-T TBL DBMS database tables(s) to enumerate
-C COLS DBMS database table column(s) to enumerate
--start Retrieve entries from offset for dbs/tables/columns/dump
--stop Retrieve entries till offset for dbs/tables/columns/dump
--sql-shell Prompt for an interactive SQL shell (experimental)
Example:
ghauri -u http://www.site.com/vuln.php?id=1 --dbs
Usage of Ghauri for attacking targets without prior mutual consent is illegal.
It is the end user's responsibility to obey all applicable local,state and federal laws.
Developer assume no liability and is not responsible for any misuse or damage caused by this program.
SQLMap と比較してユーザーが Ghauri で得た成功を強調する記事や投稿が多数あります。私は Ghauri と SQLMap を直接比較していませんが、多くのユーザーが比較しています。私がこのプロジェクトを開始したのは、日常業務の中で、一見単純な SQL インジェクションであっても、SQLMap を構成して効果的に使用する際に重大な課題に頻繁に遭遇したためです。これらのインジェクションは単純そうに見えますが、SQLMap では検出できないことがよくありました。友人に勧められて、自分でツールを作成することにしました。私は、それぞれが特定のケースに合わせて調整された悪用用の多数のスクリプトを開発しましたが、これらの手法を単一のモジュールに統合することの潜在的な利点に気づきました。これが Ghauri の作成につながり、コミュニティから好評を博し、その有効性から肯定的なフィードバックと星を獲得しました。
StamparamもGhauriを認め、ツイートの中でGhauriを「内部構造の書き換え」と表現し、内部機構の重要性を強調した。
たとえば、脆弱な HTTP リクエストをファイル (認証の背後にある SQLi) に保存し、-r スイッチを使用して Ghauri と SQLMap の両方に提供できます。カスタム構成を必要とせずに、結果がすべてを物語ります。
Ghauri はブラウザのような方法と独自の方法の両方で動作し、さまざまな抽出手法とバイパスに自動的に切り替えます。繰り返しますが、Ghauri には実装すべき機能がまだ多くあるのに対し、SQLMap はすでに機能が豊富であるため、これは直接の比較ではありません。ただし、ガウリは必要なタスクを一貫して実行します。
このツールを開発して以来、Ghauri がまだ改善されているいくつかの場合を除いて、私は SQLMap をほとんど使用しません。
ぜひ試してみることをお勧めします。ありがとう。