Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
800 commits
Select commit Hold shift + click to select a range
7747112
Minor update
stamparm Jun 11, 2026
df97e1d
Minor patch
stamparm Jun 11, 2026
69e1bf2
Minor update
stamparm Jun 11, 2026
1555be2
Minor update
stamparm Jun 11, 2026
cd7ebe9
Minor patch
stamparm Jun 11, 2026
da36d28
Minor patch
stamparm Jun 11, 2026
b67a6ad
Minor patch
stamparm Jun 11, 2026
12b8150
Minor patch
stamparm Jun 11, 2026
d229d4d
Minor patch
stamparm Jun 11, 2026
6a95e63
Minor patch
stamparm Jun 11, 2026
680ebd9
Minor improvement for safeSQLIdentificator naming
stamparm Jun 11, 2026
7e56505
Minor fix for calculating length of output items
stamparm Jun 11, 2026
74b5ffd
Minor patch
stamparm Jun 11, 2026
e12d7a2
Minor patch of API calls
stamparm Jun 11, 2026
8a2ad7d
Minor update of swagger YAML
stamparm Jun 11, 2026
5436617
Renaming REST-JSON API to REST API
stamparm Jun 11, 2026
6e1fe6f
Minor bug fix
stamparm Jun 11, 2026
8e48af6
Minor patches
stamparm Jun 11, 2026
b4a6d25
Minor update of doctests
stamparm Jun 12, 2026
3a36265
Minor improvement of dynamic content removal
stamparm Jun 12, 2026
37322b5
Minor patch
stamparm Jun 12, 2026
994292e
Re-evaluating tamper priorities
stamparm Jun 12, 2026
fc16a8e
Minor improvement to equal tamper scripts
stamparm Jun 12, 2026
1d1725f
Minor update
stamparm Jun 12, 2026
2e89210
Minor patch for between tamper script
stamparm Jun 12, 2026
4b08aaf
Minor patch
stamparm Jun 12, 2026
000c4e5
Minor bug for SQLAlchemy util class
stamparm Jun 12, 2026
800e6f0
Making DuckDuckGo default search engine
stamparm Jun 12, 2026
f09ea12
Fixing custom xrange for negative steps
stamparm Jun 12, 2026
63b1b59
Minor bug fix for boolean-blind file reads
stamparm Jun 12, 2026
bfe410c
Minor update of error regexes
stamparm Jun 12, 2026
d984593
Add SAP HANA Support
zakaria-zoulati Jun 13, 2026
3307bab
Update the checksum
zakaria-zoulati Jun 13, 2026
9e92d3c
Merge branch 'master' into feature/add-SAP-HANA-support
zakaria-zoulati Jun 13, 2026
6fc0dda
Minor update
stamparm Jun 14, 2026
93d2439
Adding missing substring query entries
stamparm Jun 14, 2026
bc4ce6e
Minor patch for python2
stamparm Jun 14, 2026
e24678f
Couple of bug fixes
stamparm Jun 14, 2026
10c464c
Minor bug fixes
stamparm Jun 14, 2026
03fb84c
Minor bug fixes
stamparm Jun 14, 2026
d42e503
Fixing some tamper script bugs
stamparm Jun 14, 2026
61d327a
Minor patch of RestrictedUnpickler
stamparm Jun 14, 2026
48b915b
Minor update
stamparm Jun 14, 2026
3816df1
Adding unit tests
stamparm Jun 15, 2026
948d01d
Fixing CI/CD failing
stamparm Jun 15, 2026
17e94c3
Adding --report-json option
stamparm Jun 15, 2026
403855f
Adding JSONL as a dump format
stamparm Jun 15, 2026
d570f8e
Fixing CI/CD issues
stamparm Jun 15, 2026
91bf58b
Adding --api-test for CI/CD
stamparm Jun 15, 2026
7c401ca
Adding new unittest
stamparm Jun 15, 2026
c210dac
Minor bug fix
stamparm Jun 15, 2026
be284e9
Adding more unittests
stamparm Jun 15, 2026
ea1f089
Adding some warning message
stamparm Jun 15, 2026
4e2438d
Minor patches
stamparm Jun 15, 2026
75c4c86
Minor update
stamparm Jun 15, 2026
cc7f803
Adding ARCHITECTURE.md
stamparm Jun 15, 2026
a0cbfba
Adding support for better JSON comparison
stamparm Jun 16, 2026
1404133
Add --prove, opt-in --auto-tamper WAF bypass, and blindbinary/infosch…
stamparm Jun 17, 2026
002a28f
Couple of bug fixes
stamparm Jun 18, 2026
8a458fc
Removal of duplicate boundary
stamparm Jun 18, 2026
8de9c58
Couple of improvements
stamparm Jun 18, 2026
a2d44a7
Minor patching
stamparm Jun 18, 2026
d5d6fac
Minor patch
stamparm Jun 19, 2026
824ef46
Fixing issues with UNION and COLLATE on MySQL
stamparm Jun 19, 2026
2aed8d1
Minor doctest fix
stamparm Jun 19, 2026
bbc4936
Fixing several inaccurate payload titles
stamparm Jun 19, 2026
889ad43
Adding adaptive set-membership (Huffman) retrieval for faster blind d…
stamparm Jun 19, 2026
497d377
Adding keyset (seek) pagination for faster blind table dumps
stamparm Jun 19, 2026
35fefc3
Improvements for JSON_AGG retrieval
stamparm Jun 20, 2026
e1aac02
More improvements for JSON_AGG retrieval
stamparm Jun 20, 2026
6d306ba
Rewritten the improved keep-alive handler
stamparm Jun 20, 2026
9d653d2
Making Keep-Alive on by default
stamparm Jun 20, 2026
e82b1b5
Minor update
stamparm Jun 21, 2026
7e652ed
Adding some more pyunittests
stamparm Jun 21, 2026
a3b857e
Minor update
stamparm Jun 21, 2026
03b44ed
Minor update
stamparm Jun 21, 2026
9d8c102
Fixes CI/CD tests
stamparm Jun 21, 2026
46fc5ac
Minor update
stamparm Jun 21, 2026
a3fc171
Minor update
stamparm Jun 21, 2026
0b2b3e9
Minor patch
stamparm Jun 21, 2026
bf28b0a
Minor patch
stamparm Jun 21, 2026
87a3a2e
Minor fixes
stamparm Jun 22, 2026
f5ee402
Fixes CI/CD issue
stamparm Jun 22, 2026
4ba8ede
Minor update
stamparm Jun 22, 2026
b66840e
Potential patch for CI/CD issue
stamparm Jun 22, 2026
de87b28
Minor patch
stamparm Jun 23, 2026
c0d343b
Some XML updates
stamparm Jun 23, 2026
f15b73d
Minor fixes
stamparm Jun 23, 2026
0d82096
Minor update
stamparm Jun 23, 2026
da66f1b
Adding HUFFMAN_PRIOR_WEIGHTS
stamparm Jun 23, 2026
57dcc04
Minor improvements
stamparm Jun 23, 2026
0cfa88e
Minor patch
stamparm Jun 23, 2026
a2bbca1
Minor patch
stamparm Jun 23, 2026
15715a2
Adding switch --procs (#778)
stamparm Jun 23, 2026
cef105f
Minor bug fixes
stamparm Jun 23, 2026
0430f78
Improving --gui and --tui
stamparm Jun 24, 2026
0a331f2
Minor update
stamparm Jun 24, 2026
2893fd5
Adding support for NoSQL injection
stamparm Jun 24, 2026
f6912fc
Adding support for GraphQL (--graphql)
stamparm Jun 27, 2026
e47b976
Fixing CI/CD issue
stamparm Jun 27, 2026
7a95103
Fixing CI/CD issue
stamparm Jun 27, 2026
e8162d3
Adding switch --ldap
stamparm Jun 27, 2026
c51b4c0
Minor patches
stamparm Jun 27, 2026
7e610b8
Removing some unused imports
stamparm Jun 28, 2026
771d4cf
Fixing CI/CD failure
stamparm Jun 28, 2026
cbf5dbd
Minor refactoring
stamparm Jun 28, 2026
69ba213
Minor refactoring
stamparm Jun 28, 2026
333e3e4
Fixing some pyflakes naggings
stamparm Jun 28, 2026
9daeab2
Removing last pyflakes nagging cause
stamparm Jun 28, 2026
c7a9185
Adding pyflakes into CI/CD pipeline
stamparm Jun 28, 2026
692c4bc
Fixing CI/CD failure
stamparm Jun 28, 2026
149bdd8
Fixing CI/CD failure
stamparm Jun 28, 2026
02ae09e
Minor update
stamparm Jun 28, 2026
3809161
Minor update
stamparm Jun 28, 2026
d6a754e
Minor update
stamparm Jun 28, 2026
1feb6f7
Minor update
stamparm Jun 28, 2026
60403f8
Debugging CI/CD failure
stamparm Jun 28, 2026
ca75546
Debugging CI/CD failure
stamparm Jun 28, 2026
24e26d1
Debugging CI/CD failure
stamparm Jun 28, 2026
70efdfd
Checking if pyflakes really works in CI/CD
stamparm Jun 28, 2026
6bbcd4a
Fixing CI/CD failure
stamparm Jun 28, 2026
8676166
Polishing CI/CD pipeline
stamparm Jun 28, 2026
b933ff3
Polishing CI/CD pipeline
stamparm Jun 28, 2026
cb20a44
Update of unit tests
stamparm Jun 28, 2026
2297c81
Update of tests
stamparm Jun 28, 2026
4c86981
Fixing CI/CD pipeline
stamparm Jun 28, 2026
8ff5d38
Adding switch --xpath
stamparm Jun 28, 2026
820efa7
Adding switch --ssti
stamparm Jun 29, 2026
7b60bc8
Minor improvements
stamparm Jun 29, 2026
7774c73
Minor fix
stamparm Jun 29, 2026
fd7eaf1
Minor fix
stamparm Jun 29, 2026
87ba038
Fixing CI/CD pipeline
stamparm Jun 29, 2026
a78885d
Minor patching
stamparm Jun 29, 2026
87eb93d
Minor update
stamparm Jun 30, 2026
e0269ac
Minor update
stamparm Jun 30, 2026
f932a3f
Minor refactoring
stamparm Jun 30, 2026
74f90df
Implementing extractStructuralTokens as a helper to detection engine
stamparm Jun 30, 2026
92a9446
Minor optimization
stamparm Jun 30, 2026
d6b491d
Minor safety mechanism for HEAD null connection
stamparm Jun 30, 2026
154c7e3
Minor optimization
stamparm Jul 1, 2026
6e459d6
Couple of optimizations
stamparm Jul 1, 2026
8a75c0b
Minor patch
stamparm Jul 1, 2026
39ba1bc
Adding custom/own support for HTTP2
stamparm Jul 1, 2026
3e7d064
Adding some more tests
stamparm Jul 1, 2026
62a7bf3
Adding tests for http2 functionality
stamparm Jul 1, 2026
40a31c1
Removing thirdparty OrderedDict
stamparm Jul 1, 2026
6514597
Minor renaming of options
stamparm Jul 1, 2026
bd10f84
Minor patch
stamparm Jul 1, 2026
1716ad1
Minor improvement of UNION detection
stamparm Jul 1, 2026
c2209d9
Patch related to #5357
stamparm Jul 1, 2026
a3bff54
Fixes #1545
stamparm Jul 1, 2026
e1126a2
Improving --predict-output
stamparm Jul 1, 2026
d2ead9d
Adding support for import sqlmap as a library (#2083)
stamparm Jul 2, 2026
47b8b6e
Minor update
stamparm Jul 2, 2026
a7c9b72
Adding support for HTTP2 connection reusage
stamparm Jul 2, 2026
d6299fc
Adding more supported hash algorithms
stamparm Jul 2, 2026
fe69e6b
Adding support for --openapi
stamparm Jul 2, 2026
2719ce6
Minor patch
stamparm Jul 2, 2026
732d164
Fixing CI/CD errors
stamparm Jul 2, 2026
71d9c6d
Stabilization of unittests
stamparm Jul 2, 2026
d60e95e
Some more stabilization of unittests
stamparm Jul 2, 2026
2b9fd6c
Minor update of the references
stamparm Jul 3, 2026
16c8909
Minor patch
stamparm Jul 3, 2026
5fa2da5
Adding support for --xxe
stamparm Jul 4, 2026
3cf29a5
Refactoring for --xxe
stamparm Jul 4, 2026
103a0e6
More refactoring for --xxe
stamparm Jul 4, 2026
7fd6bb3
Minor update
stamparm Jul 4, 2026
3b3a822
Minor update
stamparm Jul 4, 2026
3bab3cd
Minor update
stamparm Jul 4, 2026
6597415
Minor update
stamparm Jul 4, 2026
50ff3de
General boolean inference improvements
stamparm Jul 6, 2026
8f6a372
Some refactoring
stamparm Jul 6, 2026
788c9fa
Minor patch
stamparm Jul 6, 2026
05f81ab
Fixing the CI/CD failure
stamparm Jul 6, 2026
b2a5283
Adding some missing SQL keywords
stamparm Jul 7, 2026
f46c463
Adding support for --timeless HTTP2 technique
stamparm Jul 7, 2026
f65dc92
Adding SQLlint for checking the sanity of queries
stamparm Jul 8, 2026
89ddc5a
Minor patch
stamparm Jul 8, 2026
e2c55c1
Minor patch
stamparm Jul 8, 2026
4504eda
Switching from pickle to json for serialization
stamparm Jul 8, 2026
4b3a36c
Fixes CI/CD error
stamparm Jul 8, 2026
291abb0
Minor update
stamparm Jul 8, 2026
0033934
Minor optimization
stamparm Jul 8, 2026
fd00902
Adding --payload-lint to CI/CD
stamparm Jul 8, 2026
8db71f4
Fixes CI/CD error
stamparm Jul 8, 2026
165bf83
Minor update
stamparm Jul 8, 2026
dd4f40a
Adding max reponse size for HTTP2
stamparm Jul 8, 2026
8dda2b4
Minor patch
stamparm Jul 8, 2026
d8cc2ae
Minor update
stamparm Jul 8, 2026
5893f06
Enabling jsonAgg in partial union cases
stamparm Jul 9, 2026
c1516f1
Fixes #6080
stamparm Jul 9, 2026
c1363dd
Minor refactoring
stamparm Jul 9, 2026
478888b
Minor patch
stamparm Jul 9, 2026
8837dd2
Minor patch
stamparm Jul 9, 2026
767feba
Embedding the NTLM auth support (without the deprecated 3rd party lib)
stamparm Jul 9, 2026
4c12dda
Fixing --eta
stamparm Jul 9, 2026
fc1ae69
Adding native websocket support
stamparm Jul 9, 2026
622cfa7
Adding --openapi-tags
stamparm Jul 9, 2026
1465d55
Merge branch 'master' into hana-pr
stamparm Jul 9, 2026
3784f8b
Expand SAP HANA: role-aware is_dba, heavy-query time-based, error sig…
stamparm Jul 9, 2026
2aafdc0
Update of THANKS.md
stamparm Jul 9, 2026
2a9da9d
Fixing CI/CD errors
stamparm Jul 9, 2026
6ece3c6
Minor update related to SAP HANA
stamparm Jul 9, 2026
df6c50a
Minor patch
stamparm Jul 9, 2026
346c9d9
Minor patch
stamparm Jul 10, 2026
d0f16b2
Adding support for --hql
stamparm Jul 10, 2026
2fec735
Minor patches
stamparm Jul 10, 2026
986933e
Minor patches
stamparm Jul 10, 2026
f4c4025
Minor patch
stamparm Jul 10, 2026
b8fb645
Minor patches
stamparm Jul 10, 2026
827ec0a
Minor update for Oracle support
stamparm Jul 10, 2026
52c7424
Adding support for Oracle 12C password hashes
stamparm Jul 10, 2026
354977b
Minor bug fix - LEN counts lengths for trimmed strings
stamparm Jul 10, 2026
1cdc69e
Minor update
stamparm Jul 10, 2026
40ccd80
Fixing desync error from SLOW_ORDER_COUNT_THRESHOLD
stamparm Jul 11, 2026
567e051
Minor patching for binary fields and casting
stamparm Jul 11, 2026
8bc0f47
Fixes #5933
stamparm Jul 11, 2026
fb9cec1
Auto recognize binary fields in blind cases
stamparm Jul 11, 2026
d9a4a09
Minor patch
stamparm Jul 11, 2026
97c8b45
Minor patches
stamparm Jul 11, 2026
ab59a4b
Minor patches
stamparm Jul 11, 2026
3378f8d
Minor patches for -d
stamparm Jul 11, 2026
e23a91f
Some more patches for -d
stamparm Jul 11, 2026
d5ff557
Some more patches for -d
stamparm Jul 11, 2026
921870c
Adding embedded dbwire library
stamparm Jul 12, 2026
2acc8a5
Patches for dbwire
stamparm Jul 12, 2026
a61e359
Bug fixes for dbwire
stamparm Jul 12, 2026
9d08b1d
Some more bug fixes for dbwire
stamparm Jul 12, 2026
05005dd
Minor update of dbwire
stamparm Jul 12, 2026
dad2f02
Minor update
stamparm Jul 12, 2026
5993389
Adding CUBRID to dbwire
stamparm Jul 12, 2026
d69ae91
Minor patch
stamparm Jul 12, 2026
16cd942
Introducing detection switch --lengths
stamparm Jul 12, 2026
9331ac0
Adding support for DuckDB
stamparm Jul 12, 2026
b1ff8a3
Fixes CI/CD
stamparm Jul 12, 2026
94e2184
Minor update
stamparm Jul 12, 2026
38ab43f
Improvement for H2 and Oracle
stamparm Jul 12, 2026
dab476d
Implementing PostgreSQL PL-extension RCE
stamparm Jul 12, 2026
af385c3
Minor fine tuning
stamparm Jul 12, 2026
1c894ab
DB2 views fix
stamparm Jul 12, 2026
5f99b28
Minor fixes
stamparm Jul 12, 2026
0338c13
Minor update for SQLlinter
stamparm Jul 12, 2026
7ee21bb
Fixes CI/CD errors
stamparm Jul 13, 2026
71afbf0
Fixes #6083
stamparm Jul 13, 2026
da07c87
Minor improvement for slow hash cracking algos
stamparm Jul 13, 2026
c496cf9
Adding check for repackaging prick
stamparm Jul 16, 2026
57f8485
Adding Esperanto DBMS agnostic engine
stamparm Jul 16, 2026
43c6574
Fixing CI/CD errors
stamparm Jul 16, 2026
0c6f57d
Fixing CI/CD errors
stamparm Jul 16, 2026
9db49d5
Fixing CI/CD errors
stamparm Jul 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
*.conf text eol=lf
*.json text eol=lf
*.html text eol=lf
*.md text eol=lf
*.md5 text eol=lf
*.pl text eol=lf
*.py text eol=lf
*.sh text eol=lf
*.sql text eol=lf
*.txt text eol=lf
*.xml text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
LICENSE text eol=lf
COMMITMENT text eol=lf

Expand Down
48 changes: 12 additions & 36 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,22 @@
# Contributor Covenant Code of Conduct
# Code of Conduct

## Our Pledge
## Our Goal

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
The sqlmap project provides a professional, technical environment for contributors. We prioritize technical excellence and respectful collaboration.

## Our Standards
## Standards

Examples of behavior that contributes to creating a positive environment include:
Contributors are expected to:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
* Be respectful and professional in all communications.
* Focus on the technical merits of the project.
* Gracefully accept constructive criticism.

Examples of unacceptable behavior by participants include:
Unacceptable behavior includes:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
* Harassment, personal attacks, or doxxing.
* Any behavior that disrupts the technical progress of the project.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at dev@sqlmap.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
The project maintainers have sole authority to moderate discussions and contributions. Decisions are made at the maintainers' discretion to ensure the project remains a focused and productive environment. Reports can be sent to `dev@sqlmap.org`.
129 changes: 122 additions & 7 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,138 @@ on:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
build:
runs-on: ${{ matrix.os }}
timeout-minutes: 30

env:
# deterministic dict/set iteration order run-to-run (guards against hash-order flakiness in CI)
PYTHONHASHSEED: "0"

strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [ '2.x', '3.11', 'pypy-2.7', 'pypy-3.7' ]
include:
- os: ubuntu-latest
python-version: "pypy-2.7"
- os: macos-latest
python-version: "3.8"
- os: windows-latest
python-version: "3.14"

steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 1
persist-credentials: false

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Python sanity
run: python -VV

- name: Pyflakes lint
shell: bash
run: |
python - <<'PY'
from __future__ import print_function

import subprocess
import sys

subprocess.check_call([
sys.executable, "-m", "pip", "install", "pyflakes"
])

files = subprocess.check_output(
["git", "ls-files", "*.py"]
).decode("utf-8").splitlines()

files = [
f for f in files
if not f.startswith("thirdparty/")
]

proc = subprocess.Popen(
[sys.executable, "-m", "pyflakes"] + files,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
)
out, _ = proc.communicate()

text = out.decode("utf-8", "replace")
lines = [
line for line in text.splitlines()
if " redefines " not in line
]

if lines:
print("\n".join(lines))
sys.exit(1)

if proc.returncode not in (0, 1):
if text:
print(text)
print("pyflakes failed unexpectedly with status %s" % proc.returncode)
sys.exit(proc.returncode or 1)

print("pyflakes: clean")
PY

- name: Basic import test
run: python -c "import sqlmap; import sqlmapapi"

- name: Install optional test deps (lxml, jinja2)
# lxml has no PyPy-2.7 wheel and 5.x is Py3-only, so it cannot be pip-installed there. The
# tests that use it (test_xpath's real-XPath checks, and the --xpath/--ssti vuln-test
# endpoints) skip themselves when the engine is unavailable, so these deps are only needed
# on the Py3 jobs.
if: matrix.python-version != 'pypy-2.7'
run: python -m pip install -q lxml jinja2

- name: Unit tests
# -B: do not write .pyc files. On Python 2 / PyPy a cached .pyc makes a module's __file__
# point at the .pyc, which would make the later --smoke getFileType(__file__) doctest see
# 'binary' instead of 'text'. Keeping this step byte-compile-free leaves --smoke clean.
run: python -B -m unittest discover -s tests -p "test_*.py"

- name: Esperanto self-test
# offline, deterministic engine check against an in-memory SQLite boolean oracle: all
# compare modes + identify + bytes/text + noisy-oracle quorum + integrity + strategy
# handoff (a failed assertion exits non-zero)
run: python extra/esperanto/run.py --self-test

- name: Coverage
if: matrix.python-version != 'pypy-2.7'
run: |
python -m pip install coverage
python -m coverage run --source=lib,plugins,tamper -m unittest discover -s tests -p "test_*.py"
python -m coverage run -a --source=lib,plugins,tamper sqlmap.py --doc-test
python -m coverage report --fail-under=50

- name: Smoke test
run: python sqlmap.py --smoke
run: python sqlmap.py --smoke-test

- name: Payload lint
# offline: emulates blind + UNION enumeration across all DBMSes and checks
# every payload agent.py builds with lib/utils/sqllint (structural sanity)
run: python sqlmap.py --payload-lint

- name: Vuln test
run: python sqlmap.py --vuln
run: python sqlmap.py --vuln-test

- name: API test
run: python sqlmap.py --api-test
12 changes: 11 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,14 @@ __pycache__/
traffic.txt
*~
req*.txt
.idea/
.idea/
.aider*
.DS_Store
.github/.DS_Store
data/.DS_Store
extra/.DS_Store
lib/.DS_Store
plugins/.DS_Store
thirdparty/.DS_Store
CLAUDE.md
.coverage
Loading