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를 인정하여 트윗에서 "내부 재작성"이라고 설명하면서 내부 메커니즘의 중요성을 강조했습니다.
예를 들어 취약한 HTTP 요청을 파일(인증 뒤의 SQLi)에 저장하고 -r 스위치를 사용하여 Ghauri와 SQLMap 모두에 제공할 수 있습니다. 결과는 사용자 지정 구성 없이도 스스로 알 수 있습니다.
Ghauri는 브라우저와 유사한 방식과 고유한 방법으로 작동하여 자동으로 다양한 추출 기술과 우회로 전환합니다. 다시 말하지만, Ghauri에는 아직 구현해야 할 기능이 많고 SQLMap에는 이미 기능이 풍부하기 때문에 이것은 직접적인 비교가 아닙니다. 그러나 Ghauri는 필요한 작업을 지속적으로 수행합니다.
이 도구를 개발한 이후 Ghauri가 여전히 개선되고 있는 몇 가지 경우를 제외하고는 SQLMap을 거의 사용하지 않습니다.
직접 시도해 보시기 바랍니다. 감사합니다.