Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: wapiti-scanner/wapiti
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: Cyberwatch/wapiti
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.

Commits on Sep 20, 2024

  1. Bump aiohttp from 3.9.4 to 3.10.2

    Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.9.4 to 3.10.2.
    - [Release notes](https://github.com/aio-libs/aiohttp/releases)
    - [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)
    - [Commits](aio-libs/aiohttp@v3.9.4...v3.10.2)
    
    ---
    updated-dependencies:
    - dependency-name: aiohttp
      dependency-type: direct:production
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored and fwininger committed Sep 20, 2024
    Copy the full SHA
    087dcda View commit details
  2. apply changes in wp_enum module from cms/wp_enum to fix false positives

    Signed-off-by: bretfourbe <gwendal@cyberwatch.fr>
    bretfourbe authored and fwininger committed Sep 20, 2024
    Copy the full SHA
    25764d3 View commit details
  3. Fix issue 25

    Draft Fix issue 25
    OussamaBeng authored and fwininger committed Sep 20, 2024
    Copy the full SHA
    28fd24c View commit details
  4. Corriger les warnings dans le Dockerfile de tests

    Warning: LegacyKeyValueFormat
    philippe-cbw authored and fwininger committed Sep 20, 2024
    Copy the full SHA
    0487dfa View commit details
  5. Add an update script for CMS

    Add a script to update CMS hash files from a given database
    OussamaBeng authored and fwininger committed Sep 20, 2024
    Copy the full SHA
    f69d80e View commit details
  6. Fix le swagger crawler

    Fix le problème des requetes PUT dans le module swagger en mode headless
    OussamaBeng authored and fwininger committed Sep 20, 2024
    Copy the full SHA
    3188ef9 View commit details
  7. Ajout d'un job de CI pour l'update des hash cms

    xavier authored and fwininger committed Sep 20, 2024
    Copy the full SHA
    a7643a7 View commit details
  8. Ajout d'une option d'authentification

    Ajout d'une option pour faire l'authentification à partir d'un fichier .side
    OussamaBeng authored and fwininger committed Sep 20, 2024
    Copy the full SHA
    22b2371 View commit details
  9. Ajouter .env au dictionnaire de module Buster

    Fix issue #29
    OussamaBeng authored and fwininger committed Sep 20, 2024
    Copy the full SHA
    7dd1e73 View commit details

Commits on Sep 24, 2024

  1. Passer le module wp_enum en DEPRECATED

    Mentionner dans la doc que le module wp_enum a été remplacé par le module cms.
    OussamaBeng committed Sep 24, 2024
    Copy the full SHA
    6d56b3d View commit details

Commits on Sep 27, 2024

  1. Ajout d'autres chemins au dictionnaire de module Buster

    Ajout de quelques chemins pour détecter la présence de fichiers .env
    OussamaBeng authored and fwininger committed Sep 27, 2024
    Copy the full SHA
    3e1e280 View commit details
  2. Add an option for JWT

    Add an option to set the JWT token on headers
    OussamaBeng authored and fwininger committed Sep 27, 2024
    Copy the full SHA
    5c17758 View commit details

Commits on Sep 30, 2024

  1. remove stale dependency on "six"

    a-detiste authored and fwininger committed Sep 30, 2024
    Copy the full SHA
    bd2b3c7 View commit details
  2. Copy the full SHA
    9dfba09 View commit details

Commits on Oct 2, 2024

  1. Correction des petites remarques remontées sur l'option --side-file

    Corriger la description de l'option.
    Remplacer "-sf" par "--sf".
    OussamaBeng committed Oct 2, 2024
    Copy the full SHA
    56e2ff7 View commit details

Commits on Oct 7, 2024

  1. Copy the full SHA
    f7df7f5 View commit details

Commits on Oct 9, 2024

  1. Copy the full SHA
    f80e225 View commit details

Commits on Oct 23, 2024

  1. Fix issue 35

    Supression du fonction isfile de fichier main/wapiti.py, et gérer le cas de fichier inexistant au niveau de fichier auth.py.
    OussamaBeng committed Oct 23, 2024
    Copy the full SHA
    230ac6a View commit details

Commits on Nov 21, 2024

  1. Fix issue 36

    Ajout d’une fonction de vérification :
    Cette fonction calcule le taux de similarité entre la réponse originale et la réponse obtenue après une requête modifiée.
    
    Il n’est pas possible de comparer directement le contenu brut des deux réponses car certaines variables dynamiques, comme les tokens (ex. authenticity_token, csrf-token), changent d’une réponse à l’autre.
    OussamaBeng committed Nov 21, 2024
    Copy the full SHA
    26b9bea View commit details

Commits on Nov 22, 2024

  1. Fix issue 17

    L'issue est causé par les fichiers .js contenant des chaines de caractères comme "uid=", ce qui considéré comme une injection réussie de la commande "id".
    J'ai ajouté 2 fonctions, la première vérifie le content-type des pages, afin de vérifier qu'il est acceptable (en prenant juste les content-type text/html, text/plain, application/json, et application/javascript).
    La deuxième fonction vérifie l'extension du fichier concerné, ça filtre les fichiers qui peuvent provoquer des faux positifs, comme les .js et .css par exemple.
    Le module ne détecte aucune vulnérabilités sur les pages qui causent des faux positifs.
    Fix issue #17.
    OussamaBeng committed Nov 22, 2024
    Copy the full SHA
    2939e4e View commit details

Commits on Jan 10, 2025

  1. update dependances

    MathisFranel committed Jan 10, 2025
    Copy the full SHA
    e8ba7eb View commit details

Commits on Jan 16, 2025

  1. Copy the full SHA
    9e06391 View commit details

Commits on Jan 17, 2025

  1. Mise à jour de Firefox

    fwininger committed Jan 17, 2025
    Copy the full SHA
    7f1eb81 View commit details

Commits on Feb 3, 2025

  1. Fix issue 18

    Ajout d'une vérification permettant d'exclure les fichiers images lors du scan, ce qui permet d'éliminer les faux positifs causés par les paramètres des requêtes GET sur les fichiers images
    OussamaBeng committed Feb 3, 2025
    Copy the full SHA
    73fe568 View commit details

Commits on Feb 4, 2025

  1. Ajout d'un scan de la vulnérabilité CVE-2024-55591

    Modification de module network_devices afin de pouvoir scanner la vulnérabilité CVE-2024-55591
    OussamaBeng authored and fwininger committed Feb 4, 2025
    Copy the full SHA
    07cf26a View commit details

Commits on Feb 13, 2025

  1. Amélioration de payloads de module exec

    Remplacement de quelques règles par des regex.;
    Ajout d'une fonction de vérification plus précise.
    OussamaBeng committed Feb 13, 2025
    Copy the full SHA
    c02bd4c View commit details

Commits on Feb 19, 2025

  1. doc: fix wiki link in readme file

    devl00p authored and fwininger committed Feb 19, 2025
    Copy the full SHA
    b5150ec View commit details
  2. Remove the need for the asyncio stop Event on attacks, refactor attac…

    …k module to a single function that can be cancelled on ctrl+c, use a finally block to persist attacked_ids in case of interruption
    devl00p authored and fwininger committed Feb 19, 2025
    Copy the full SHA
    16ed3cf View commit details
  3. Copy the full SHA
    ef8dbd4 View commit details
  4. Clean after cherry-pick

    fwininger committed Feb 19, 2025
    Copy the full SHA
    9a8dc9c View commit details

Commits on Mar 10, 2025

  1. Ajout module de détection ivanti

    MathisFranel authored and fwininger committed Mar 10, 2025
    Copy the full SHA
    fc3af57 View commit details
  2. Copy the full SHA
    d12d0e2 View commit details
Showing with 2,178 additions and 714 deletions.
  1. +37 −0 .gitlab-ci.yml
  2. +2 −2 Dockerfile.headless
  3. +4 −4 Dockerfile.test
  4. +3 −4 README.rst
  5. +10 −1 doc/wapiti.1
  6. +7 −1 doc/wapiti.1.html
  7. +11 −2 doc/wapiti.ronn
  8. +21 −22 pyproject.toml
  9. +2 −3 tests/attack/test_mod_backup.py
  10. +2 −2 tests/attack/test_mod_buster.py
  11. +30 −31 tests/attack/test_mod_cms.py
  12. +1 −2 tests/attack/test_mod_cookieflags.py
  13. +1 −2 tests/attack/test_mod_crlf.py
  14. +1 −2 tests/attack/test_mod_csrf.py
  15. +98 −4 tests/attack/test_mod_exec.py
  16. +52 −6 tests/attack/test_mod_file.py
  17. +1 −2 tests/attack/test_mod_htaccess.py
  18. +10 −11 tests/attack/test_mod_htp.py
  19. +6 −6 tests/attack/test_mod_https_redirect.py
  20. +4 −5 tests/attack/test_mod_ldap.py
  21. +13 −14 tests/attack/test_mod_log4shell.py
  22. +3 −4 tests/attack/test_mod_methods.py
  23. +569 −28 tests/attack/test_mod_network_device.py
  24. +2 −3 tests/attack/test_mod_nikto.py
  25. +2 −3 tests/attack/test_mod_permanentxss.py
  26. +3 −4 tests/attack/test_mod_redirect.py
  27. +1 −2 tests/attack/test_mod_shellshock.py
  28. +3 −4 tests/attack/test_mod_spring4shell.py
  29. +6 −7 tests/attack/test_mod_sql.py
  30. +2 −3 tests/attack/test_mod_ssl.py
  31. +2 −3 tests/attack/test_mod_ssrf.py
  32. +1 −2 tests/attack/test_mod_takeover.py
  33. +4 −5 tests/attack/test_mod_timesql.py
  34. +1 −2 tests/attack/test_mod_upload.py
  35. +28 −28 tests/attack/test_mod_wapp.py
  36. +12 −10 tests/attack/test_mod_wp_enum.py
  37. +22 −23 tests/attack/test_mod_xss_advanced.py
  38. +1 −2 tests/attack/test_mod_xss_basics.py
  39. +7 −8 tests/attack/test_mod_xxe.py
  40. +14 −17 tests/cli/test_options.py
  41. +1 −1 tests/integration/dns-endpoint/Dockerfile.dns-endpoint
  42. +11 −10 tests/parsers/test_swagger_parser.py
  43. +4 −7 wapitiCore/attack/attack.py
  44. +2 −19 wapitiCore/attack/cms/cms_common.py
  45. +25 −40 wapitiCore/attack/cms/mod_wp_enum.py
  46. +19 −7 wapitiCore/attack/mod_backup.py
  47. +2 −2 wapitiCore/attack/mod_brute_login_form.py
  48. +4 −11 wapitiCore/attack/mod_buster.py
  49. +5 −7 wapitiCore/attack/mod_cms.py
  50. +2 −2 wapitiCore/attack/mod_crlf.py
  51. +2 −2 wapitiCore/attack/mod_csrf.py
  52. +47 −5 wapitiCore/attack/mod_exec.py
  53. +9 −2 wapitiCore/attack/mod_file.py
  54. +4 −21 wapitiCore/attack/mod_htp.py
  55. +2 −2 wapitiCore/attack/mod_ldap.py
  56. +2 −2 wapitiCore/attack/mod_log4shell.py
  57. +3 −3 wapitiCore/attack/mod_network_device.py
  58. +3 −8 wapitiCore/attack/mod_nikto.py
  59. +2 −2 wapitiCore/attack/mod_redirect.py
  60. +2 −2 wapitiCore/attack/mod_shellshock.py
  61. +2 −2 wapitiCore/attack/mod_sql.py
  62. +2 −2 wapitiCore/attack/mod_ssl.py
  63. +2 −2 wapitiCore/attack/mod_ssrf.py
  64. +2 −5 wapitiCore/attack/mod_takeover.py
  65. +2 −2 wapitiCore/attack/mod_timesql.py
  66. +2 −2 wapitiCore/attack/mod_wapp.py
  67. +102 −90 wapitiCore/attack/mod_wp_enum.py
  68. +2 −2 wapitiCore/attack/mod_xss.py
  69. +2 −2 wapitiCore/attack/mod_xxe.py
  70. +1 −1 wapitiCore/attack/network_devices/mod_citrix.py
  71. +112 −43 wapitiCore/attack/network_devices/mod_forti.py
  72. +170 −0 wapitiCore/attack/network_devices/mod_ivanti.py
  73. +92 −81 wapitiCore/controller/wapiti.py
  74. +33 −0 wapitiCore/data/attacks/busterPayloads.txt
  75. +3 −8 wapitiCore/data/attacks/execPayloads.ini
  76. +30 −0 wapitiCore/data/attacks/src_cms_files/list_files_drupal.txt
  77. +20 −0 wapitiCore/data/attacks/src_cms_files/list_files_joomla-cms.txt
  78. +33 −0 wapitiCore/data/attacks/src_cms_files/list_files_prestashop.txt
  79. +27 −0 wapitiCore/data/attacks/src_cms_files/list_files_spip.txt
  80. +30 −0 wapitiCore/data/attacks/src_cms_files/list_files_wordpress.txt
  81. +97 −0 wapitiCore/data/attacks/update_hash_files.py
  82. +71 −0 wapitiCore/definitions/cve_2024_55591.py
  83. +16 −15 wapitiCore/main/wapiti.py
  84. +118 −3 wapitiCore/net/auth.py
  85. +7 −3 wapitiCore/net/crawler.py
  86. +2 −1 wapitiCore/net/intercepting_explorer.py
  87. +1 −1 wapitiCore/net/web.py
  88. +18 −0 wapitiCore/parsers/commandline.py
  89. +20 −5 wapitiCore/parsers/swagger.py
  90. +5 −5 wapitiCore/report/htmlreportgenerator.py
  91. +4 −0 wapitiCore/wappalyzer/wappalyzer.py
37 changes: 37 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
stages:
- code_style
- tests
- update

variables:
PYTHON_10_IMAGE: "docker.io/library/python:3.10-slim-bullseye"
PYTHON_11_IMAGE: "docker.io/library/python:3.11-slim-bullseye"
ACCESS_TOKEN_NAME: "gitlab-ci-token"

check_coding_style:
stage: code_style
@@ -63,3 +65,38 @@ test-build-docker:
$CI_PIPELINE_SOURCE == "merge_request_event"
script:
- docker build .

update_hash :
stage: update
tags:
- docker-wapiti
rules:
- if: '$UPDATE_HASH == "true"'
image: $IMAGE_UPDATE_HASH
before_script:
- apt update && apt install -y git curl grep
script:
- git clone https://$ACCESS_TOKEN_NAME:$ACCESS_TOKEN@$PROJECT_URL/wapiti.git
- cd ./wapiti/wapitiCore/data/attacks/
- BRANCH_NAME=cms_update_`date +'%Y_%m_%d'`
- git switch -c $BRANCH_NAME
- curl -Lo "collected_data.db" https://github.com/Cyberwatch/HashThePlanet/releases/download/latest/hashtheplanet.db
- python3 update_hash_files.py --db ./collected_data.db --source-file ./src_cms_files/
- git add ./*.json
- |
if git diff --cached --quiet
then
exit 0
else
git config --global user.email "$COMMITER_MAIL"
git config --global user.name "$COMMITER_NAME"
git commit -m "AUTO-COMMIT: Update CMS hash `date +'%Y-%m-%d'`"
git push --set-upstream origin $BRANCH_NAME
curl -X POST --header "Private-Token: $ACCESS_TOKEN" \
"https://$GITLAB_URL/api/v4/projects/$CI_PROJECT_ID/merge_requests" \
--data "source_branch=$BRANCH_NAME" \
--data "target_branch=master" \
--data "title=Update hash files for CMS module" \
--data "description=This MR is generated automatically by the CI JOB "update_hash". It allows us to update hash files for CMS module."\
--data "remove_source_branch=true"
fi
4 changes: 2 additions & 2 deletions Dockerfile.headless
Original file line number Diff line number Diff line change
@@ -18,8 +18,8 @@ RUN pip3 install . --break-system-packages

FROM debian:bookworm-slim

ARG firefox_ver=124.0
ARG geckodriver_ver=0.34.0
ARG firefox_ver=134.0
ARG geckodriver_ver=0.35.0

ENV DEBIAN_FRONTEND=noninteractive \
LANG=en_US.UTF-8 \
8 changes: 4 additions & 4 deletions Dockerfile.test
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM ubuntu:22.04

ENV DEBIAN_FRONTEND noninteractive
ENV DEBIAN_FRONTEND=noninteractive

RUN apt update \
&& apt install ca-certificates python3 python3-pip php8.1-cli php8.1-xml sslscan -y --no-install-recommends \
@@ -15,9 +15,9 @@ RUN python3 -m pip install --upgrade pip
RUN pip3 install -U setuptools --no-cache-dir
RUN mkdir /usr/src/app

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8

WORKDIR /usr/src/app

7 changes: 3 additions & 4 deletions README.rst
Original file line number Diff line number Diff line change
@@ -149,7 +149,7 @@ The aforementioned attacks are tied to the following module names :
+ timesql (SQL injection vulnerabilities detected with time-based methodology)
+ upload (File upload vulnerabilities)
+ wapp (Not an attack module, retrieves web technologies with versions and categories in use on the target)
+ wp_enum (Enumerate plugins and themes on a Wordpress website)
+ wp_enum Detect WordPress Plugins with version - DEPRECATED (replaced by the module cms)
+ xss (XSS injection module)
+ xxe (XML External Entity attack)

@@ -182,13 +182,12 @@ In the prompt, just type the following command to get the basic usage :

You can also take a look at the manpage (wapiti.1 or wapiti.1.html) for more details on each option.

We also have an official wiki which is more exhaustive : https://github.com/wapiti-scanner/wapiti/wiki

If you have another question, first check the `FAQ <https://github.com/wapiti-scanner/wapiti/blob/master/doc/FAQ.md>`__

If you find a bug, fill an issue : https://github.com/wapiti-scanner/wapiti/issues

The official wiki can be helpful too :
https://sourceforge.net/p/wapiti/wiki/browse_pages/


How to help the Wapiti project
==============================
11 changes: 10 additions & 1 deletion doc/wapiti.1
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "WAPITI" "1" "August 2024" "" ""
.TH "WAPITI" "1" "September 2024" "" ""
.
.SH "NAME"
\fBwapiti\fR \- A web application vulnerability scanner in Python
@@ -98,6 +98,9 @@ PROXY AND AUTHENTICATION OPTIONS:
\fB\-\-form\-script\fR \fIFILENAME\fR
.
.IP "\(bu" 4
\fB\-\-side\-file\fR \fIFILENAME\fR
.
.IP "\(bu" 4
\fB\-c\fR, \fB\-\-cookie\fR \fICOOKIE_FILE_OR_BROWSER_NAME\fR
.
.IP "\(bu" 4
@@ -436,6 +439,9 @@ Send data specified with \fB\-\-form\-data\fR using the given content\-type (def
Use a custom Python authentication plugin
.
.IP "\(bu" 4
\fB\-\-side\-file\fR \fIFILENAME\fR Use a \.side file generated using Selenium IDE to perform an authenticated scan\.
.
.IP "\(bu" 4
\fB\-c\fR, \fB\-\-cookie\fR \fICOOKIE_FILE_OR_BROWSER_NAME\fR
.
.br
@@ -448,6 +454,9 @@ You can also import cookies from your browser by passing "chrome" or "firefox" a
\fB\-C\fR, \fB\-\-cookie\-value\fR \fICOOKIE_VALUE\fR Set cookies from a valid user cookies\. You can import all the session cookies by copying the value of the cookies sent with headers from a request sent by an authenticated user\. For example: \-\-cookie\-value "PHPSESSIONID=5f4dcc3b5aa765d61d8327deb882cf99;cookie_2=somevalue"
.
.IP "\(bu" 4
\-\-jwt` \fIJWT\fR Set JWT token from a valid user session\. You can import the JWT token value to be sent with every request for an authenticated scan\.
.
.IP "\(bu" 4
\fB\-\-drop\-set\-cookie\fR
.
.br
8 changes: 7 additions & 1 deletion doc/wapiti.1.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 11 additions & 2 deletions doc/wapiti.ronn
Original file line number Diff line number Diff line change
@@ -48,8 +48,10 @@ PROXY AND AUTHENTICATION OPTIONS:
* `--form-url` <URL>
* `--form-enctype` <ENCTYPE>
* `--form-script` <FILENAME>
* `--side-file` <FILENAME>
* `-c`, `--cookie` <COOKIE_FILE_OR_BROWSER_NAME>
* `-C`, `--cookie-value` <COOKIE_VALUE>
* `--jwt` <JWT>
* `--drop-set-cookie`

SESSION OPTIONS:
@@ -199,6 +201,9 @@ OTHER OPTIONS:
* `--form-script` <FILENAME>
Use a custom Python authentication plugin

* `--side-file` <FILENAME>
Use a .side file generated using Selenium IDE to perform an authenticated scan.

* `-c`, `--cookie` <COOKIE_FILE_OR_BROWSER_NAME>
Load cookies from a Wapiti JSON cookie file. See wapiti-getcookie(1) for more information.
You can also import cookies from your browser by passing "chrome" or "firefox" as value (MS Edge is not supported).
@@ -207,8 +212,12 @@ OTHER OPTIONS:
Set cookies from a valid user cookies.
You can import all the session cookies by copying the value of the cookies sent with headers from a request sent by an authenticated user.
For example: --cookie-value "PHPSESSIONID=5f4dcc3b5aa765d61d8327deb882cf99;cookie_2=somevalue"

* `--drop-set-cookie`

* --jwt` <JWT>
Set JWT token from a valid user session.
You can import the JWT token value to be sent with every request for an authenticated scan.

* `--drop-set-cookie`
Ignore cookies given in HTTP responses. Cookies that have been loaded using `-c` will be kept.

## SESSIONS
43 changes: 21 additions & 22 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -31,27 +31,26 @@ classifiers = [
"Topic :: Software Development :: Testing"
]
dependencies = [
"aiocache==0.12.2",
"aiohttp==3.9.4",
"aiosqlite==0.20.0",
"aiocache==0.12.3",
"aiohttp==3.11.13",
"aiosqlite==0.21.0",
"arsenic==21.8",
"beautifulsoup4==4.12.3",
"browser-cookie3==0.19.1",
"dnspython==2.6.1",
"beautifulsoup4==4.13.3",
"browser-cookie3==0.20.1",
"dnspython==2.7.0",
"h11==0.14.0",
"httpcore==1.0.4",
"httpx[brotli, socks]==0.27.0",
"httpcore==1.0.7",
"httpx[brotli, socks]==0.28.1",
"httpx-ntlm==1.4.0",
"humanize==4.9.0",
"loguru==0.7.2",
"mako==1.3.2",
"markupsafe==2.1.5",
"mitmproxy==10.2.3",
"pyasn1==0.5.1",
"six==1.16.0",
"sqlalchemy==2.0.28",
"humanize==4.12.1",
"loguru==0.7.3",
"mako==1.3.9",
"markupsafe==3.0.2",
"mitmproxy==11.0.2",
"pyasn1==0.6.1",
"sqlalchemy==2.0.38",
"tld==0.13",
"typing-extensions==4.10.0",
"typing-extensions==4.11.0",
"yaswfp==0.9.3",
"prance[osv]>=23.6.21.0"
]
@@ -66,11 +65,11 @@ wapiti-getcookie = "wapitiCore.main.getcookie:getcookie_asyncio_wrapper"

[project.optional-dependencies]
test = [
"humanize==4.9.0",
"pytest==8.0.2",
"pytest-cov==4.1.0",
"pytest-asyncio==0.23.5",
"respx==0.20.2",
"humanize==4.12.1",
"pytest==8.3.4",
"pytest-cov==6.0.0",
"pytest-asyncio==0.25.3",
"respx==0.22.0",
]

[tool.setuptools.packages]
5 changes: 2 additions & 3 deletions tests/attack/test_mod_backup.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from asyncio import Event
from unittest.mock import AsyncMock

import httpx
@@ -35,7 +34,7 @@ async def test_whole_stuff():
async with AsyncCrawler.with_configuration(crawler_configuration) as crawler:
options = {"timeout": 10, "level": 2}

module = ModuleBackup(crawler, persister, options, Event(), crawler_configuration)
module = ModuleBackup(crawler, persister, options, crawler_configuration)
module.do_get = True
await module.attack(request, response)

@@ -66,6 +65,6 @@ async def test_false_positive():
async with AsyncCrawler.with_configuration(crawler_configuration) as crawler:
options = {"timeout": 10, "level": 2}

module = ModuleBackup(crawler, persister, options, Event(), crawler_configuration)
module = ModuleBackup(crawler, persister, options, crawler_configuration)
module.do_get = True
assert not await module.must_attack(request, response)
4 changes: 2 additions & 2 deletions tests/attack/test_mod_buster.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from unittest import mock
from unittest.mock import AsyncMock
from asyncio import Event, sleep
from asyncio import sleep

import httpx
import respx
@@ -41,7 +41,7 @@ async def test_whole_stuff():
"wordlist.txt": "nawak\nadmin\nconfig.inc\nauthconfig.php",
}
with mock.patch("builtins.open", get_mock_open(files)):
module = ModuleBuster(crawler, persister, options, Event(), crawler_configuration)
module = ModuleBuster(crawler, persister, options, crawler_configuration)
module.DATA_DIR = ""
module.PATHS_FILE = "wordlist.txt"
module.do_get = True
Loading