Codebase list feroxbuster / 72f2ff0
Import upstream version 2.7.2+git20221214.1.f4fe8c0 Kali Janitor 1 year, 4 months ago
19 changed file(s) with 26 addition(s) and 420 deletion(s). Raw diff Collapse all Expand all
455455 "avatar_url": "https://avatars.githubusercontent.com/u/111092?v=4",
456456 "profile": "http://udoprog.github.io/",
457457 "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",
458468 "code"
459469 ]
460470 }
+0
-4
.github/FUNDING.yml less more
0 # These are supported funding model platforms
1
2 github: [epi052]
3 ko_fi: epi052
+0
-30
.github/ISSUE_TEMPLATE/bug_report.md less more
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
-20
.github/ISSUE_TEMPLATE/feature_request.md less more
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
-8
.github/actions-rs/grcov.yml less more
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
-7
.github/dependabot.yml less more
0 version: 2
1 updates:
2 - package-ecosystem: cargo
3 directory: "/"
4 schedule:
5 interval: daily
6 open-pull-requests-limit: 10
+0
-28
.github/pull_request_template.md less more
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
-18
.github/stale.yml less more
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
-159
.github/workflows/build.yml less more
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
-46
.github/workflows/check.yml less more
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
-34
.github/workflows/cicd-to-dockerhub.yml less more
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
-24
.github/workflows/coverage.yml less more
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
-32
.gitignore less more
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*
698698
699699 [[package]]
700700 name = "feroxbuster"
701 version = "2.7.1"
701 version = "2.7.2"
702702 dependencies = [
703703 "anyhow",
704704 "assert_cmd",
244244 <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>
245245 <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>
246246 </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>
247250 </tbody>
248251 </table>
249252
2323 '--replay-proxy=[Send only unfiltered requests through a Replay Proxy, instead of all requests]:REPLAY_PROXY:_urls' \
2424 '*-R+[Status Codes to send through a Replay Proxy when found (default: --status-codes value)]:REPLAY_CODE: ' \
2525 '*--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: ' \
2828 '*-x+[File extension(s) to search for (ex: -x php -x pdf js)]:FILE_EXTENSION: ' \
2929 '*--extensions=[File extension(s) to search for (ex: -x php -x pdf js)]:FILE_EXTENSION: ' \
3030 '*-m+[Which HTTP request method(s) should be sent (default: GET)]:HTTP_METHODS: ' \
2929 [CompletionResult]::new('--replay-proxy', 'replay-proxy', [CompletionResultType]::ParameterName, 'Send only unfiltered requests through a Replay Proxy, instead of all requests')
3030 [CompletionResult]::new('-R', 'R', [CompletionResultType]::ParameterName, 'Status Codes to send through a Replay Proxy when found (default: --status-codes value)')
3131 [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)')
3434 [CompletionResult]::new('-x', 'x', [CompletionResultType]::ParameterName, 'File extension(s) to search for (ex: -x php -x pdf js)')
3535 [CompletionResult]::new('--extensions', 'extensions', [CompletionResultType]::ParameterName, 'File extension(s) to search for (ex: -x php -x pdf js)')
3636 [CompletionResult]::new('-m', 'm', [CompletionResultType]::ParameterName, 'Which HTTP request method(s) should be sent (default: GET)')
2626 cand --replay-proxy 'Send only unfiltered requests through a Replay Proxy, instead of all requests'
2727 cand -R 'Status Codes to send through a Replay Proxy when found (default: --status-codes value)'
2828 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)'
3131 cand -x 'File extension(s) to search for (ex: -x php -x pdf js)'
3232 cand --extensions 'File extension(s) to search for (ex: -x php -x pdf js)'
3333 cand -m 'Which HTTP request method(s) should be sent (default: GET)'
100100 handles.filters.data.clone(),
101101 );
102102
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);
104106
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 }
107110
108111 log::trace!("exit: sigint_handler (end of program)");
109112 std::process::exit(1);