Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
939 commits
Select commit Hold shift + click to select a range
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
b38eb79
Implementing support for Struts2 into --ssti
stamparm Jul 17, 2026
76b75e9
Improving dialect checks
stamparm Jul 17, 2026
ab6ce22
Add experimental gRPC-Web (text) support
stamparm Jul 17, 2026
afc4910
Minor patch
stamparm Jul 17, 2026
697e591
Removing some leftovers
stamparm Jul 17, 2026
80aaa79
Removing some leftover
stamparm Jul 17, 2026
5b32254
Minor update
stamparm Jul 17, 2026
54bb3ea
Minor fix
stamparm Jul 18, 2026
384ee1a
Minor patch
stamparm Jul 19, 2026
109ce21
Bug fix for dump format SQLITE
stamparm Jul 19, 2026
00cccf7
Minor fix
stamparm Jul 19, 2026
e288df2
Minor fix
stamparm Jul 19, 2026
fabe4ce
Minor fix
stamparm Jul 19, 2026
20537c5
Minor patch
stamparm Jul 19, 2026
dcecf55
Minor patch
stamparm Jul 19, 2026
d08e992
Minor patch
stamparm Jul 19, 2026
932a5bd
Fixes version comparison
stamparm Jul 19, 2026
c78cd5c
Fixes potential collisions in list/tuple with cachedmethod
stamparm Jul 19, 2026
8c86dc6
Minor patch
stamparm Jul 19, 2026
267c200
Minor patch
stamparm Jul 19, 2026
3764ec6
Adding some more tests
stamparm Jul 19, 2026
8614059
Adding some more entries into common files list
stamparm Jul 19, 2026
f56ab88
Fixes CI/CD errors
stamparm Jul 19, 2026
7b64ae7
Minor patch
stamparm Jul 19, 2026
1db09d5
Improved --gui
stamparm Jul 19, 2026
f88ecc0
Adding some more entries into common columns
stamparm Jul 19, 2026
c648703
Adding some more entries into common tables
stamparm Jul 19, 2026
47e98a0
Minor patch
stamparm Jul 19, 2026
69c8a94
Adding support for domain cookies
stamparm Jul 19, 2026
d2a9db2
Minor patch
stamparm Jul 19, 2026
2e28b70
Minor patch
stamparm Jul 19, 2026
6234b62
Minor patch
stamparm Jul 19, 2026
620f3a7
Fixing charunicodeencode tamper script
stamparm Jul 20, 2026
09389aa
Fixing 3-byte char inference
stamparm Jul 20, 2026
d1eb861
Adding some more inference tests
stamparm Jul 20, 2026
adc4355
Compressing common identifiers list
stamparm Jul 20, 2026
b0408f1
Fixing some wrong ptype values in boundaries.xml
stamparm Jul 20, 2026
fc9b3c9
Fixing some more wrong ptype values in boundaries.xml
stamparm Jul 20, 2026
6ce5d7d
Adding some more boundaries
stamparm Jul 20, 2026
67574b8
Minor improvement of payloads
stamparm Jul 20, 2026
0f5ba41
Adding RAISERROR MsSQL payload
stamparm Jul 20, 2026
3238415
Removing some junk boundaries
stamparm Jul 20, 2026
2626e50
Adding boundarycheck tool
stamparm Jul 20, 2026
37771f0
Minor update
stamparm Jul 20, 2026
e589936
Adding some guard blocks when people fool around with their environment
stamparm Jul 20, 2026
6d9322b
Trivial patch
stamparm Jul 21, 2026
5848fa4
Bug fix for MsSQL (removing it from PLUS_ONE_DBMSES)
stamparm Jul 21, 2026
6a4ae1f
Fixing some MsSQL enumeration bugs
stamparm Jul 21, 2026
4a0308d
Fixing some Altibase and Sybase queries
stamparm Jul 21, 2026
6b8de67
Some more fixing of queries
stamparm Jul 21, 2026
002828a
Some more fixing of query workflow
stamparm Jul 21, 2026
26e1312
Fixing #6087
stamparm Jul 21, 2026
a22f782
Fixing DB2 truncation
stamparm Jul 21, 2026
721c9d9
Fixing Derby queries
stamparm Jul 21, 2026
d381a32
Fixing Sybase queries
stamparm Jul 21, 2026
99ec51f
Minor bug fix
stamparm Jul 21, 2026
a7c63af
Fixing H2 file write
stamparm Jul 21, 2026
0cf4c64
Adding auto-between on > filtering
stamparm Jul 21, 2026
9925adf
Adding tamper script sign
stamparm Jul 21, 2026
e8512c8
Expanding Esperanto engine with SIGN
stamparm Jul 21, 2026
016c388
Expanding Esperanto engine with more log2 comparators
stamparm Jul 21, 2026
bdf1901
Minor update
stamparm Jul 21, 2026
a5a7f72
Tons of improvements for Esperanto engine
stamparm Jul 21, 2026
272d144
Fixing CI/CD errors
stamparm Jul 21, 2026
c294098
Minor style changes for Esperanto DBMS engine
stamparm Jul 21, 2026
e6a5e8f
More style changes for Esperanto DBMS engine
stamparm Jul 21, 2026
36ebce6
Tons of stabilization of non-SQLi techniques
stamparm Jul 23, 2026
f129d3a
Fixing CI/CD errors
stamparm Jul 23, 2026
fcec8ef
Fixing CI/CD errors
stamparm Jul 23, 2026
ffe124f
Some more fixing CI/CD errors
stamparm Jul 23, 2026
075d009
Adding switch --mine-params
stamparm Jul 24, 2026
2d9e9ed
Implementing support for 429 (rate limit)
stamparm Jul 24, 2026
1bd1b45
Adding Negotiate/Kerberos authentication (#3404)
stamparm Jul 24, 2026
ab88113
Hardening Negotiate/Kerberos authentication (#3404)
stamparm Jul 24, 2026
a4c983a
Adding native Brotli (br) and Zstandard (zstd) response decoding
stamparm Jul 24, 2026
5a5aebf
Hardening Brotli/Zstandard decoding against hostile input
stamparm Jul 25, 2026
b2f98b6
Improved crawling
stamparm Jul 25, 2026
edbfca0
Adding switch --jwt
stamparm Jul 25, 2026
d2bcb39
Improvement of error-based vectors (e.g. SQLite error vector added)
stamparm Jul 26, 2026
bf138e8
Fixing CI/CD errors
stamparm Jul 26, 2026
57dee85
Some more fixing CI/CD errors
stamparm Jul 26, 2026
523cdd8
Fixing chunked error-based responses for Firebird
stamparm Jul 26, 2026
07d8d5f
Fixing MonetDB error-based payload
stamparm Jul 26, 2026
2f56ad6
Making more DBMS specific error-based payloads for H2, Firebird and V…
stamparm Jul 26, 2026
a1ed35c
Adding error-based payloads for InterSystems Cache
stamparm Jul 26, 2026
c75df91
Adding CUBRID error-based payloads
stamparm Jul 26, 2026
ca608da
Adding Virtuoso error-based payloads
stamparm Jul 26, 2026
13e956c
Adding Cubrid time-based payloads
stamparm Jul 26, 2026
dcb2b51
Hardening MySQL time-based payloads to not work on Cubrid
stamparm Jul 26, 2026
69108bc
Minor patch
stamparm Jul 26, 2026
ec58f57
Expanding capabilities of MySQL to correctly retrieve UTF8MB4 chars
stamparm Jul 27, 2026
8b70a39
Minor bug fix for bug UTF codepoints retrieval in MsSQL
stamparm Jul 27, 2026
1d263f2
Adding --hex for ClickHouse
stamparm Jul 27, 2026
d3cfad6
Fixing DB2 boolean-based blind retrieval of non-ASCII chars
stamparm Jul 27, 2026
2aeb275
Some more unicode retrieval patchin
stamparm Jul 27, 2026
534f873
Minor update
stamparm Jul 27, 2026
762650d
Fixing --dump for Derby
stamparm Jul 27, 2026
fbc3704
Fixing multi-byte corruption
stamparm Jul 27, 2026
f43dba3
Fixing retrieval of exotic coltypes on MySQL
stamparm Jul 27, 2026
bb9e5db
Fixing bug with --lengths and --null-connection combined
stamparm Jul 27, 2026
9fdb704
Minor bug fix
stamparm Jul 27, 2026
5dd91ba
Minor patch
stamparm Jul 27, 2026
cd911ac
Fixing --hex in boolean-based blind
stamparm Jul 28, 2026
0ab8407
Reducing number of requests for --hex in --technique=E
stamparm Jul 28, 2026
18e06c6
Fixing MsSQL FOR JSON handling of NULL values
stamparm Jul 28, 2026
154adb1
Fixing keyset dump for some cases
stamparm Jul 28, 2026
0079412
Massive speed improvement of luanginxmore tamper script
stamparm Jul 28, 2026
84f0ef8
Minor corrected patch for MsSQL hash cracking
stamparm Jul 28, 2026
f992e44
Minor bug fix for --openapi
stamparm Jul 28, 2026
e8a2fc5
Fixing limitCondition double-LIMIT
stamparm Jul 28, 2026
3569849
Fixing --common-columns for -T A,B
stamparm Jul 28, 2026
ffffe2d
Fixing multi-column blind --search
stamparm Jul 28, 2026
1dcca2c
Implementing automatic auto-recover on charset mismatch (E/U)
stamparm Jul 28, 2026
b0afe6b
Fixing CI/CD errors
stamparm Jul 28, 2026
d7d06c0
Some more fixing of CI/CD errors
stamparm Jul 28, 2026
90fe32f
Some more fixing of CI/CD errors
stamparm Jul 28, 2026
1b09b02
Fixing tamper unicode/overlong encoding for characters beyond BMP/U+07FF
stamparm Jul 28, 2026
f21a6ab
Fixing blind enumeration (MS Access listing only first table; MySQL -…
stamparm Jul 28, 2026
1c869b7
Fixing core helpers (decodeStringEscape round-trip, joinValue on Pyth…
stamparm Jul 28, 2026
0a6dbd2
Fixing --openapi-only config file rejection and HAR export header-nam…
stamparm Jul 28, 2026
aa42dc0
Fixing if2case tamper corrupting arguments that contain a function ca…
stamparm Jul 28, 2026
e75d75d
Adding a minor comment
stamparm Jul 28, 2026
2bf5bd1
Minor improvement of test cases
stamparm Jul 28, 2026
0630556
Stripping time outliers from the time stats
stamparm Jul 28, 2026
2afa924
Adding new unit test
stamparm Jul 28, 2026
023d85f
Minor update
stamparm Jul 28, 2026
3067385
Making boolean inference more robust against jitter
stamparm Jul 28, 2026
39d22d2
Making boolean inference some more robust against jitter
stamparm Jul 29, 2026
3a680be
Minor patches
stamparm Jul 29, 2026
e81a99c
Renaming --murphy-rate to --jitter
stamparm Jul 29, 2026
5fb4b47
Adding voting mechanism in heavy-jitter environment
stamparm Jul 29, 2026
ac313f0
Minor patch
stamparm Jul 29, 2026
1f42f52
Trivial just in case update
stamparm Jul 29, 2026
311bf7c
Adding support for DNS OOB for H2 and ClickHouse
stamparm Jul 29, 2026
3186a4f
Fixing CI/CD errors
stamparm Jul 29, 2026
15a39b6
Minor style update
stamparm Jul 29, 2026
112356a
Minor patch
stamparm Jul 30, 2026
5be154b
Fixes diplaying of non-ASCII chars on Windows OS
stamparm Jul 30, 2026
579e559
Adding one more data correctness patch
stamparm Jul 30, 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
13 changes: 12 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,15 @@ __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
.codegraph/
Loading