Metadata-Version: 2.1
Name: ptmethods
Version: 1.0.0
Summary: HTTP methods testing tool
Home-page: https://www.penterep.com/
Author: Penterep
Author-email: info@penterep.com
License: GPLv3+
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Environment :: Console
Classifier: Topic :: Security
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ptlibs (<2,>=1)
Requires-Dist: requests

[![penterepTools](https://www.penterep.com/external/penterepToolsLogo.png)](https://www.penterep.com/)


# PTMETHODS
> HTTP methods testing tool

- Script retrieves methods offered by server from OPTIONS request
- Script sends GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, TRACE, DEBUG, FOO headers and returns server response
- Script tests CONNECT method by connecting to URL at ports 80, 443
- Script tests if domain can be used as a proxy

## Installation
```
pip install ptmethods
```

## Add to PATH
If you cannot invoke the script in your terminal, its probably because its not in your PATH. Fix it by running commands below.

> Add to PATH for Bash
```bash
echo "export PATH=\"`python3 -m site --user-base`/bin:\$PATH\"" >> ~/.bashrc
source ~/.bashrc
```

> Add to PATH for ZSH
```bash
echo "export PATH=\"`python3 -m site --user-base`/bin:\$PATH\"" >> ~/.zshhrc
source ~/.zshhrc
```

## Usage examples
Optimally use this script against homepage, any image and sources protected by HTTP authentication
```
ptmethods -u https://www.example.com/
ptmethods -u https://www.example.com/ -r
ptmethods -u https://www.example.com/index.php -sr -sh
ptmethods -u https://www.example.com/index.php -c PHPSESSID=abcdef
ptmethods -f URL_list.txt
```

## Options
```
-u   --url            <url>           Test specified URL
-f   --file           <file>          Load URLs from file
-sh  --show-headers                   Show response headers
-sr  --show-response                  Show response text
-p   --proxy          <proxy>         Set proxy (e.g. http://127.0.0.1:8080)
-T   --timeout                        Set timeout (default 10)
-c   --cookie         <cookie>        Set cookie
-ua  --user-agent     <ua>            Set User-Agent header
-H   --headers        <header:value>  Set custom header(s)
-r   --redirects                      Follow redirects (default False)
-c   --cache                          Cache requests (load from tmp in future)
-v   --version                        Show script version and exit
-h   --help                           Show this help message and exit
-j   --json                           Output in JSON format
```

## Dependencies
```
requests
ptlibs
```

## Version History
```
1.0.0
    - Support for ptlibs v1.0.0
    - Code refactorization
0.0.2 - 0.0.4
    - Implemented proxy and connect tests
0.0.1 - 0.0.3
    Alpha releases
```


## License

Copyright (c) 2023 Penterep Security s.r.o.

ptmethods is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ptmethods is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with ptmethods. If not, see https://www.gnu.org/licenses/.

## Warning

You are only allowed to run the tool against the websites which
you have been given permission to pentest. We do not accept any
responsibility for any damage/harm that this application causes to your
computer, or your network. Penterep is not responsible for any illegal
or malicious use of this code. Be Ethical!
