Import upstream version 2.7.2+git20221214.1.f4fe8c0
Kali Janitor
1 year, 4 months ago
455 | 455 | "avatar_url": "https://avatars.githubusercontent.com/u/111092?v=4", |
456 | 456 | "profile": "http://udoprog.github.io/", |
457 | 457 | "contributions": [ |
458 | "code" | |
459 | ] | |
460 | }, | |
461 | { | |
462 | "login": "kmanc", | |
463 | "name": "kmanc", | |
464 | "avatar_url": "https://avatars.githubusercontent.com/u/14863147?v=4", | |
465 | "profile": "https://github.com/kmanc", | |
466 | "contributions": [ | |
467 | "bug", | |
458 | 468 | "code" |
459 | 469 | ] |
460 | 470 | } |
0 | --- | |
1 | name: Bug report | |
2 | about: Create a report to help us improve | |
3 | title: "[BUG] " | |
4 | labels: bug | |
5 | assignees: '' | |
6 | ||
7 | --- | |
8 | ||
9 | **Describe the bug** | |
10 | A clear and concise description of what the bug is. | |
11 | ||
12 | **To Reproduce** | |
13 | Steps to reproduce the behavior: | |
14 | 1. | |
15 | 2. | |
16 | 3. | |
17 | ||
18 | **Expected behavior** | |
19 | A clear and concise description of what you expected to happen. | |
20 | ||
21 | **Traceback / Error Output** | |
22 | If applicable, add error output to help explain your problem. | |
23 | ||
24 | **Environment (please complete the following information):** | |
25 | - feroxbuster version: [e.g. v1.0.1] | |
26 | - OS [e.g. ubuntu 20.04] | |
27 | ||
28 | **Additional context** | |
29 | Add any other context about the problem here. |
0 | --- | |
1 | name: Feature request | |
2 | about: Suggest an idea for this project | |
3 | title: "[FEATURE REQUEST] " | |
4 | labels: enhancement | |
5 | assignees: '' | |
6 | ||
7 | --- | |
8 | ||
9 | **Is your feature request related to a problem? Please describe.** | |
10 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] | |
11 | ||
12 | **Describe the solution you'd like** | |
13 | A clear and concise description of what you want to happen. | |
14 | ||
15 | **Describe alternatives you've considered** | |
16 | A clear and concise description of any alternative solutions or features you've considered. | |
17 | ||
18 | **Additional context** | |
19 | Add any other context or screenshots about the feature request here. |
0 | branch: false | |
1 | ignore-not-existing: true | |
2 | llvm: true | |
3 | output-type: lcov | |
4 | output-path: ./lcov.info | |
5 | # excl-br-line: "^\\s*((debug_)?assert(_eq|_ne)?!|#\\[derive\\(|log::)" | |
6 | ignore: | |
7 | - "../*" |
0 | version: 2 | |
1 | updates: | |
2 | - package-ecosystem: cargo | |
3 | directory: "/" | |
4 | schedule: | |
5 | interval: daily | |
6 | open-pull-requests-limit: 10 |
0 | # Landing a Pull Request (PR) | |
1 | ||
2 | Long form explanations of most of the items below can be found in the [CONTRIBUTING](https://github.com/epi052/feroxbuster/blob/master/CONTRIBUTING.md) guide. | |
3 | ||
4 | ## Branching checklist | |
5 | - [ ] There is an issue associated with your PR (bug, feature, etc.. if not, create one) | |
6 | - [ ] Your PR description references the associated issue (i.e. fixes #123456) | |
7 | - [ ] Code is in its own branch | |
8 | - [ ] Branch name is related to the PR contents | |
9 | - [ ] PR targets main | |
10 | ||
11 | ## Static analysis checks | |
12 | - [ ] All rust files are formatted using `cargo fmt` | |
13 | - [ ] All `clippy` checks pass when running `cargo clippy --all-targets --all-features -- -D warnings -A clippy::mutex-atomic` | |
14 | - [ ] All existing tests pass | |
15 | ||
16 | ## Documentation | |
17 | - [ ] New code is documented using [doc comments](https://doc.rust-lang.org/stable/rust-by-example/meta/doc.html) | |
18 | - [ ] Documentation about your PR is included in the `docs`, as needed. The docs live in a [separate repository](https://epi052.github.io/feroxbuster-docs/docs/). Update the appropriate pages at the links below. | |
19 | - [ ] update [example config file section](https://epi052.github.io/feroxbuster-docs/docs/configuration/ferox-config-toml/) | |
20 | - [ ] update [help output section](https://epi052.github.io/feroxbuster-docs/docs/configuration/command-line/) | |
21 | - [ ] add an [example](https://epi052.github.io/feroxbuster-docs/docs/examples/) | |
22 | - [ ] update [comparison table](https://epi052.github.io/feroxbuster-docs/docs/compare/) | |
23 | ||
24 | ## Additional Tests | |
25 | - [ ] New code is unit tested | |
26 | - [ ] New code is integration tested, as needed | |
27 | - [ ] New tests pass |
0 | # Number of days of inactivity before an issue becomes stale | |
1 | daysUntilStale: 14 | |
2 | # Number of days of inactivity before a stale issue is closed | |
3 | daysUntilClose: 7 | |
4 | # Issues with these labels will never be considered stale | |
5 | exemptLabels: | |
6 | - pinned | |
7 | - security | |
8 | - confirmed | |
9 | # Label to use when marking an issue as stale | |
10 | staleLabel: stale | |
11 | # Comment to post when marking an issue as stale. Set to `false` to disable | |
12 | markComment: > | |
13 | This issue has been automatically marked as stale because it has not had | |
14 | recent activity. It will be closed if no further activity occurs. Thank you | |
15 | for your contributions. | |
16 | # Comment to post when closing a stale issue. Set to `false` to disable | |
17 | closeComment: false |
0 | name: CD Pipeline | |
1 | ||
2 | on: [push] | |
3 | ||
4 | jobs: | |
5 | build-nix: | |
6 | env: | |
7 | IN_PIPELINE: true | |
8 | runs-on: ${{ matrix.os }} | |
9 | if: github.ref == 'refs/heads/main' | |
10 | strategy: | |
11 | matrix: | |
12 | type: [ubuntu-x64, ubuntu-x86, armv7, aarch64] | |
13 | include: | |
14 | - type: ubuntu-x64 | |
15 | os: ubuntu-latest | |
16 | target: x86_64-unknown-linux-musl | |
17 | name: x86_64-linux-feroxbuster | |
18 | path: target/x86_64-unknown-linux-musl/release/feroxbuster | |
19 | pkg_config_path: /usr/lib/x86_64-linux-gnu/pkgconfig | |
20 | - type: ubuntu-x86 | |
21 | os: ubuntu-latest | |
22 | target: i686-unknown-linux-musl | |
23 | name: x86-linux-feroxbuster | |
24 | path: target/i686-unknown-linux-musl/release/feroxbuster | |
25 | pkg_config_path: /usr/lib/i686-linux-gnu/pkgconfig | |
26 | - type: armv7 | |
27 | os: ubuntu-latest | |
28 | target: armv7-unknown-linux-gnueabihf | |
29 | name: armv7-feroxbuster | |
30 | path: target/armv7-unknown-linux-gnueabihf/release/feroxbuster | |
31 | pkg_config_path: /usr/lib/x86_64-linux-gnu/pkgconfig | |
32 | - type: aarch64 | |
33 | os: ubuntu-latest | |
34 | target: aarch64-unknown-linux-gnu | |
35 | name: aarch64-feroxbuster | |
36 | path: target/aarch64-unknown-linux-gnu/release/feroxbuster | |
37 | pkg_config_path: /usr/lib/x86_64-linux-gnu/pkgconfig | |
38 | steps: | |
39 | - uses: actions/checkout@v2 | |
40 | - name: Install System Dependencies | |
41 | run: | | |
42 | env | |
43 | sudo apt-get update | |
44 | sudo apt-get install -y --no-install-recommends libssl-dev pkg-config gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu | |
45 | - uses: actions-rs/toolchain@v1 | |
46 | with: | |
47 | toolchain: stable | |
48 | target: ${{ matrix.target }} | |
49 | override: true | |
50 | - uses: actions-rs/cargo@v1 | |
51 | env: | |
52 | PKG_CONFIG_PATH: ${{ matrix.pkg_config_path }} | |
53 | OPENSSL_DIR: /usr/lib/ssl | |
54 | with: | |
55 | use-cross: true | |
56 | command: build | |
57 | args: --release --target=${{ matrix.target }} | |
58 | - name: Strip symbols from binary | |
59 | run: | | |
60 | strip -s ${{ matrix.path }} || arm-linux-gnueabihf-strip -s ${{ matrix.path }} || aarch64-linux-gnu-strip -s ${{ matrix.path }} | |
61 | - name: Build tar.gz for homebrew installs | |
62 | if: matrix.type == 'ubuntu-x64' | |
63 | run: | | |
64 | tar czf ${{ matrix.name }}.tar.gz -C target/x86_64-unknown-linux-musl/release feroxbuster | |
65 | - uses: actions/upload-artifact@v2 | |
66 | with: | |
67 | name: ${{ matrix.name }} | |
68 | path: ${{ matrix.path }} | |
69 | - uses: actions/upload-artifact@v2 | |
70 | if: matrix.type == 'ubuntu-x64' | |
71 | with: | |
72 | name: ${{ matrix.name }}.tar.gz | |
73 | path: ${{ matrix.name }}.tar.gz | |
74 | ||
75 | # build-deb: | |
76 | # needs: [build-nix] | |
77 | # runs-on: ubuntu-latest | |
78 | # steps: | |
79 | # - uses: actions/checkout@master | |
80 | # - name: Install cargo-deb | |
81 | # run: cargo install -f cargo-deb | |
82 | # - name: Install musl toolchain | |
83 | # run: rustup target add x86_64-unknown-linux-musl | |
84 | # - name: Deb Build | |
85 | # run: cargo deb --target=x86_64-unknown-linux-musl | |
86 | # - name: Upload Deb Artifact | |
87 | # uses: actions/upload-artifact@v2 | |
88 | # with: | |
89 | # name: feroxbuster_amd64.deb | |
90 | # path: ./target/x86_64-unknown-linux-musl/debian/* | |
91 | ||
92 | build-macos: | |
93 | env: | |
94 | IN_PIPELINE: true | |
95 | runs-on: macos-latest | |
96 | if: github.ref == 'refs/heads/main' | |
97 | steps: | |
98 | - uses: actions/checkout@v2 | |
99 | - uses: actions-rs/toolchain@v1 | |
100 | with: | |
101 | toolchain: stable | |
102 | target: x86_64-apple-darwin | |
103 | override: true | |
104 | - uses: actions-rs/cargo@v1 | |
105 | with: | |
106 | use-cross: true | |
107 | command: build | |
108 | args: --release --target=x86_64-apple-darwin | |
109 | - name: Strip symbols from binary | |
110 | run: | | |
111 | strip -u -r target/x86_64-apple-darwin/release/feroxbuster | |
112 | - name: Build tar.gz for homebrew installs | |
113 | run: | | |
114 | tar czf x86_64-macos-feroxbuster.tar.gz -C target/x86_64-apple-darwin/release feroxbuster | |
115 | - uses: actions/upload-artifact@v2 | |
116 | with: | |
117 | name: x86_64-macos-feroxbuster | |
118 | path: target/x86_64-apple-darwin/release/feroxbuster | |
119 | - uses: actions/upload-artifact@v2 | |
120 | with: | |
121 | name: x86_64-macos-feroxbuster.tar.gz | |
122 | path: x86_64-macos-feroxbuster.tar.gz | |
123 | ||
124 | build-windows: | |
125 | env: | |
126 | IN_PIPELINE: true | |
127 | runs-on: ${{ matrix.os }} | |
128 | if: github.ref == 'refs/heads/main' | |
129 | strategy: | |
130 | matrix: | |
131 | type: [windows-x64, windows-x86] | |
132 | include: | |
133 | - type: windows-x64 | |
134 | os: windows-latest | |
135 | target: x86_64-pc-windows-msvc | |
136 | name: x86_64-windows-feroxbuster.exe | |
137 | path: target\x86_64-pc-windows-msvc\release\feroxbuster.exe | |
138 | - type: windows-x86 | |
139 | os: windows-latest | |
140 | target: i686-pc-windows-msvc | |
141 | name: x86-windows-feroxbuster.exe | |
142 | path: target\i686-pc-windows-msvc\release\feroxbuster.exe | |
143 | steps: | |
144 | - uses: actions/checkout@v2 | |
145 | - uses: actions-rs/toolchain@v1 | |
146 | with: | |
147 | toolchain: stable | |
148 | target: ${{ matrix.target }} | |
149 | override: true | |
150 | - uses: actions-rs/cargo@v1 | |
151 | with: | |
152 | use-cross: true | |
153 | command: build | |
154 | args: --release --target=${{ matrix.target }} | |
155 | - uses: actions/upload-artifact@v2 | |
156 | with: | |
157 | name: ${{ matrix.name }} | |
158 | path: ${{ matrix.path }} |
0 | name: CI Pipeline | |
1 | ||
2 | on: [push, pull_request] | |
3 | ||
4 | jobs: | |
5 | check: | |
6 | name: Check | |
7 | runs-on: ubuntu-latest | |
8 | steps: | |
9 | - uses: actions/checkout@v2 | |
10 | - uses: actions-rs/cargo@v1 | |
11 | with: | |
12 | command: check | |
13 | ||
14 | test: | |
15 | name: Test Suite | |
16 | runs-on: ubuntu-latest | |
17 | steps: | |
18 | - uses: actions/checkout@v2 | |
19 | - name: Install latest nextest release | |
20 | uses: taiki-e/install-action@nextest | |
21 | - name: Test with latest nextest release | |
22 | uses: actions-rs/cargo@v1 | |
23 | with: | |
24 | command: nextest | |
25 | args: run --all-features --all-targets --retries 10 | |
26 | ||
27 | fmt: | |
28 | name: Rust fmt | |
29 | runs-on: ubuntu-latest | |
30 | steps: | |
31 | - uses: actions/checkout@v2 | |
32 | - uses: actions-rs/cargo@v1 | |
33 | with: | |
34 | command: fmt | |
35 | args: --all -- --check | |
36 | ||
37 | clippy: | |
38 | name: Clippy | |
39 | runs-on: ubuntu-latest | |
40 | steps: | |
41 | - uses: actions/checkout@v2 | |
42 | - uses: actions-rs/cargo@v1 | |
43 | with: | |
44 | command: clippy | |
45 | args: --all-targets --all-features -- -D warnings |
0 | name: ci-to-dockerhub | |
1 | ||
2 | on: | |
3 | push: | |
4 | branches: [ main ] | |
5 | ||
6 | jobs: | |
7 | build: | |
8 | runs-on: ubuntu-latest | |
9 | steps: | |
10 | - name: Checkout repository | |
11 | uses: actions/checkout@v2 | |
12 | ||
13 | - name: Login to Docker Hub | |
14 | uses: docker/login-action@v1 | |
15 | with: | |
16 | username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
17 | password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | |
18 | ||
19 | - name: Set up Docker Buildx | |
20 | id: buildx | |
21 | uses: docker/setup-buildx-action@v1 | |
22 | ||
23 | - name: Build and push | |
24 | id: docker_build | |
25 | uses: docker/build-push-action@v2 | |
26 | with: | |
27 | context: ./ | |
28 | file: ./Dockerfile | |
29 | push: true | |
30 | tags: ${{ secrets.DOCKER_HUB_USERNAME }}/feroxbuster:latest | |
31 | ||
32 | - name: Image digest | |
33 | run: echo ${{ steps.docker_build.outputs.digest }} |
0 | on: [push] | |
1 | ||
2 | name: Code Coverage Pipeline | |
3 | ||
4 | jobs: | |
5 | coverage: | |
6 | name: LLVM Coverage | |
7 | runs-on: ubuntu-latest | |
8 | steps: | |
9 | - uses: actions/checkout@v2 | |
10 | - name: Install llvm-tools-preview | |
11 | run: rustup toolchain install stable --component llvm-tools-preview | |
12 | - name: Install cargo-llvm-cov | |
13 | uses: taiki-e/install-action@cargo-llvm-cov | |
14 | - name: Install cargo-nextest | |
15 | uses: taiki-e/install-action@nextest | |
16 | - name: Generate code coverage | |
17 | run: cargo llvm-cov nextest --all-features --no-fail-fast --lcov --output-path lcov.info -- --retries 10 | |
18 | - name: Upload coverage to Codecov | |
19 | uses: codecov/codecov-action@v1 | |
20 | with: | |
21 | token: ${{ secrets.CODECOV_TOKEN }} | |
22 | files: lcov.info | |
23 | fail_ci_if_error: true |
0 | # Generated by Cargo | |
1 | # will have compiled files and executables | |
2 | debug/ | |
3 | target/ | |
4 | ||
5 | # These are backup files generated by rustfmt | |
6 | **/*.rs.bk | |
7 | ||
8 | # jetbrains metadata folder | |
9 | .idea/ | |
10 | ||
11 | # vscode metadata folder | |
12 | .vscode/ | |
13 | ||
14 | # personal feroxbuster config for testing | |
15 | ferox-config.toml | |
16 | ||
17 | # images for the README on github | |
18 | img/** | |
19 | ||
20 | # scripts to check code coverage using nightly compiler | |
21 | check-coverage.sh | |
22 | lcov_cobertura.py | |
23 | ||
24 | # dockerignore file that makes it so i can work on the docker config without copying a 4GB manifest or w/e it is | |
25 | .dockerignore | |
26 | ||
27 | # state file created during tests | |
28 | ferox-*.state | |
29 | ||
30 | # python stuff cuz reasons | |
31 | Pipfile* |
698 | 698 | |
699 | 699 | [[package]] |
700 | 700 | name = "feroxbuster" |
701 | version = "2.7.1" | |
701 | version = "2.7.2" | |
702 | 702 | dependencies = [ |
703 | 703 | "anyhow", |
704 | 704 | "assert_cmd", |
244 | 244 | <td align="center"><a href="https://github.com/herrcykel"><img src="https://avatars.githubusercontent.com/u/1936757?v=4?s=100" width="100px;" alt="O"/><br /><sub><b>O</b></sub></a><br /><a href="https://github.com/epi052/feroxbuster/commits?author=herrcykel" title="Code">💻</a></td> |
245 | 245 | <td align="center"><a href="http://udoprog.github.io/"><img src="https://avatars.githubusercontent.com/u/111092?v=4?s=100" width="100px;" alt="John-John Tedro"/><br /><sub><b>John-John Tedro</b></sub></a><br /><a href="https://github.com/epi052/feroxbuster/commits?author=udoprog" title="Code">💻</a></td> |
246 | 246 | </tr> |
247 | <tr> | |
248 | <td align="center"><a href="https://github.com/kmanc"><img src="https://avatars.githubusercontent.com/u/14863147?v=4?s=100" width="100px;" alt="kmanc"/><br /><sub><b>kmanc</b></sub></a><br /><a href="https://github.com/epi052/feroxbuster/issues?q=author%3Akmanc" title="Bug reports">🐛</a> <a href="https://github.com/epi052/feroxbuster/commits?author=kmanc" title="Code">💻</a></td> | |
249 | </tr> | |
247 | 250 | </tbody> |
248 | 251 | </table> |
249 | 252 |
23 | 23 | '--replay-proxy=[Send only unfiltered requests through a Replay Proxy, instead of all requests]:REPLAY_PROXY:_urls' \ |
24 | 24 | '*-R+[Status Codes to send through a Replay Proxy when found (default: --status-codes value)]:REPLAY_CODE: ' \ |
25 | 25 | '*--replay-codes=[Status Codes to send through a Replay Proxy when found (default: --status-codes value)]:REPLAY_CODE: ' \ |
26 | '-a+[Sets the User-Agent (default: feroxbuster/2.7.1)]:USER_AGENT: ' \ | |
27 | '--user-agent=[Sets the User-Agent (default: feroxbuster/2.7.1)]:USER_AGENT: ' \ | |
26 | '-a+[Sets the User-Agent (default: feroxbuster/2.7.2)]:USER_AGENT: ' \ | |
27 | '--user-agent=[Sets the User-Agent (default: feroxbuster/2.7.2)]:USER_AGENT: ' \ | |
28 | 28 | '*-x+[File extension(s) to search for (ex: -x php -x pdf js)]:FILE_EXTENSION: ' \ |
29 | 29 | '*--extensions=[File extension(s) to search for (ex: -x php -x pdf js)]:FILE_EXTENSION: ' \ |
30 | 30 | '*-m+[Which HTTP request method(s) should be sent (default: GET)]:HTTP_METHODS: ' \ |
29 | 29 | [CompletionResult]::new('--replay-proxy', 'replay-proxy', [CompletionResultType]::ParameterName, 'Send only unfiltered requests through a Replay Proxy, instead of all requests') |
30 | 30 | [CompletionResult]::new('-R', 'R', [CompletionResultType]::ParameterName, 'Status Codes to send through a Replay Proxy when found (default: --status-codes value)') |
31 | 31 | [CompletionResult]::new('--replay-codes', 'replay-codes', [CompletionResultType]::ParameterName, 'Status Codes to send through a Replay Proxy when found (default: --status-codes value)') |
32 | [CompletionResult]::new('-a', 'a', [CompletionResultType]::ParameterName, 'Sets the User-Agent (default: feroxbuster/2.7.1)') | |
33 | [CompletionResult]::new('--user-agent', 'user-agent', [CompletionResultType]::ParameterName, 'Sets the User-Agent (default: feroxbuster/2.7.1)') | |
32 | [CompletionResult]::new('-a', 'a', [CompletionResultType]::ParameterName, 'Sets the User-Agent (default: feroxbuster/2.7.2)') | |
33 | [CompletionResult]::new('--user-agent', 'user-agent', [CompletionResultType]::ParameterName, 'Sets the User-Agent (default: feroxbuster/2.7.2)') | |
34 | 34 | [CompletionResult]::new('-x', 'x', [CompletionResultType]::ParameterName, 'File extension(s) to search for (ex: -x php -x pdf js)') |
35 | 35 | [CompletionResult]::new('--extensions', 'extensions', [CompletionResultType]::ParameterName, 'File extension(s) to search for (ex: -x php -x pdf js)') |
36 | 36 | [CompletionResult]::new('-m', 'm', [CompletionResultType]::ParameterName, 'Which HTTP request method(s) should be sent (default: GET)') |
26 | 26 | cand --replay-proxy 'Send only unfiltered requests through a Replay Proxy, instead of all requests' |
27 | 27 | cand -R 'Status Codes to send through a Replay Proxy when found (default: --status-codes value)' |
28 | 28 | cand --replay-codes 'Status Codes to send through a Replay Proxy when found (default: --status-codes value)' |
29 | cand -a 'Sets the User-Agent (default: feroxbuster/2.7.1)' | |
30 | cand --user-agent 'Sets the User-Agent (default: feroxbuster/2.7.1)' | |
29 | cand -a 'Sets the User-Agent (default: feroxbuster/2.7.2)' | |
30 | cand --user-agent 'Sets the User-Agent (default: feroxbuster/2.7.2)' | |
31 | 31 | cand -x 'File extension(s) to search for (ex: -x php -x pdf js)' |
32 | 32 | cand --extensions 'File extension(s) to search for (ex: -x php -x pdf js)' |
33 | 33 | cand -m 'Which HTTP request method(s) should be sent (default: GET)' |
100 | 100 | handles.filters.data.clone(), |
101 | 101 | ); |
102 | 102 | |
103 | let state_file = open_file(&filename); | |
103 | // User didn't set the --no-state flag (so saved_state is still the default true) | |
104 | if handles.config.save_state { | |
105 | let state_file = open_file(&filename); | |
104 | 106 | |
105 | let mut buffered_file = state_file?; | |
106 | write_to(&state, &mut buffered_file, true)?; | |
107 | let mut buffered_file = state_file?; | |
108 | write_to(&state, &mut buffered_file, true)?; | |
109 | } | |
107 | 110 | |
108 | 111 | log::trace!("exit: sigint_handler (end of program)"); |
109 | 112 | std::process::exit(1); |