Skip to content

Commit

Permalink
Server-side request forgery (SSRF) detection operator (#268)
Browse files Browse the repository at this point in the history
  • Loading branch information
Anilm3 authored Mar 8, 2024
1 parent c51ae81 commit 88df1d4
Show file tree
Hide file tree
Showing 215 changed files with 2,108 additions and 166 deletions.
2 changes: 1 addition & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
# readability-function-cognitive-complexity temporarily disabled until clang-tidy is fixed
# right now emalloc causes it to misbehave
Checks: '*,misc-const-correctness,-bugprone-reserved-identifier,-hicpp-signed-bitwise,-llvmlibc-restrict-system-libc-headers,-altera-unroll-loops,-hicpp-named-parameter,-cert-dcl37-c,-cert-dcl51-cpp,-read,-cppcoreguidelines-init-variables,-cppcoreguidelines-avoid-non-const-global-variables,-altera-id-dependent-backward-branch,-performance-no-int-to-ptr,-altera-struct-pack-align,-google-readability-casting,-modernize-use-trailing-return-type,-llvmlibc-implementation-in-namespace,-llvmlibc-callee-namespace,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-fuchsia-default-arguments-declarations,-fuchsia-overloaded-operator,-cppcoreguidelines-pro-type-union-access,-fuchsia-default-arguments-calls,-cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes,-google-readability-todo,-llvm-header-guard,-readability-function-cognitive-complexity,-readability-identifier-length,-cppcoreguidelines-owning-memory,-cert-err58-cpp,-fuchsia-statically-constructed-objects,-google-build-using-namespace,-hicpp-avoid-goto,-cppcoreguidelines-avoid-goto,-hicpp-no-array-decay,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-bounds-constant-array-index,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-abseil-string-find-str-contains'
Checks: '*,misc-const-correctness,-bugprone-reserved-identifier,-hicpp-signed-bitwise,-llvmlibc-restrict-system-libc-headers,-altera-unroll-loops,-hicpp-named-parameter,-cert-dcl37-c,-cert-dcl51-cpp,-read,-cppcoreguidelines-init-variables,-cppcoreguidelines-avoid-non-const-global-variables,-altera-id-dependent-backward-branch,-performance-no-int-to-ptr,-altera-struct-pack-align,-google-readability-casting,-modernize-use-trailing-return-type,-llvmlibc-implementation-in-namespace,-llvmlibc-callee-namespace,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-fuchsia-default-arguments-declarations,-fuchsia-overloaded-operator,-cppcoreguidelines-pro-type-union-access,-fuchsia-default-arguments-calls,-cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes,-google-readability-todo,-llvm-header-guard,-readability-function-cognitive-complexity,-readability-identifier-length,-cppcoreguidelines-owning-memory,-cert-err58-cpp,-fuchsia-statically-constructed-objects,-google-build-using-namespace,-hicpp-avoid-goto,-cppcoreguidelines-avoid-goto,-hicpp-no-array-decay,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-bounds-constant-array-index,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-abseil-string-find-str-contains,-bugprone-unchecked-optional-access'
WarningsAsErrors: '*'
HeaderFilterRegex: ''
AnalyzeTemporaryDtors: false
Expand Down
46 changes: 40 additions & 6 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
fuzzing:
# TODO: build all fuzzers first, then run independently
global-fuzzer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -31,25 +32,58 @@ jobs:
DEBIAN_FRONTEND="noninteractive" sudo apt-get -y install libfuzzer-17-dev
- name: Build
run: ./fuzzing/build.sh
run: ./fuzzer/global/build.sh

- name: Run fuzzer
run: ./fuzzing/run.sh ${{ github.event.inputs.duration }}
run: ./fuzzer/global/run.sh ${{ github.event.inputs.duration }}

- name: Log
if: ${{ always() }}
run: grep -v -f fuzzing/scripts/report-negative-patterns.txt fuzzing/fuzz-*.log
run: grep -v -f fuzzer/global/scripts/report-negative-patterns.txt fuzzer/global/fuzz-*.log

- name: Show coverage
run: ./fuzzing/scripts/show_coverage.sh 40
run: ./fuzzer/global/scripts/show_coverage.sh 40

- name: Compress artifact
if: ${{ always() }}
run: tar -czvf fuzzing.tar.gz fuzzing/
run: tar -czvf fuzzing.tar.gz fuzzer/global/

- name: Artifact
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: fuzzing-data
path: fuzzing.tar.gz
local-fuzzer:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
variant:
- uri_parse
- ssrf_detector
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Install deps
run: |
DEBIAN_FRONTEND="noninteractive" sudo apt-get -y remove python3-lldb-14
sudo .github/workflows/scripts/llvm.sh 17
DEBIAN_FRONTEND="noninteractive" sudo apt-get -y install libfuzzer-17-dev
- name: Build
env:
CC: clang-17
CXX: clang++-17
run: |
mkdir build ; cd build
cmake -DCMAKE_VERBOSE_MAKEFILE=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make -j $(nproc) ${{ matrix.variant }}_fuzzer
cp fuzzer/${{ matrix.variant }}_fuzzer ../fuzzer/${{ matrix.variant }}
- name: Run fuzzer
run: |
cd fuzzer/${{ matrix.variant }}
./${{ matrix.variant }}_fuzzer -max_total_time=${{ github.event.inputs.duration || 60 }} corpus/
29 changes: 16 additions & 13 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,23 @@ tests/default.profraw
perf/test_files/parsed_*
perf/test_files/breakdown.numbers

/fuzzing/build
/fuzzing/venv
/fuzzing/corpus
/fuzzer/global/build
/fuzzer/global/venv
/fuzzer/global/corpus

/fuzzing/sample_rules.yml
/fuzzing/sample_dict.txt
/fuzzing/fuzzer
/fuzzing/libddwaf.a
/fuzzing/fuzzer.dSYM
/fuzzing/default.profdata
/fuzzing/default.profraw
/fuzzing/coverage.html
/fuzzing/fuzz-*.log
/fuzzing/results/crash-*
/fuzzer/global/sample_rules.yml
/fuzzer/global/sample_dict.txt
/fuzzer/global/fuzzer
/fuzzer/global/libddwaf.a
/fuzzer/global/fuzzer.dSYM
/fuzzer/global/default.profdata
/fuzzer/global/default.profraw
/fuzzer/global/coverage.html
/fuzzer/global/fuzz-*.log
/fuzzer/global/results/crash-*

/fuzzer/*/corpus/*
!/fuzzer/*/corpus/corpus-*

/src/version.hpp

Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ if (LIBDDWAF_TESTING)
add_subdirectory(tests EXCLUDE_FROM_ALL)
add_subdirectory(validator EXCLUDE_FROM_ALL)
add_subdirectory(benchmark EXCLUDE_FROM_ALL)
add_subdirectory(fuzzing EXCLUDE_FROM_ALL)
add_subdirectory(fuzzer EXCLUDE_FROM_ALL)
add_subdirectory(tools EXCLUDE_FROM_ALL)

include(cmake/clang-tidy.cmake)
Expand Down
2 changes: 1 addition & 1 deletion cmake/clang-format.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ if(CLANG_FORMAT STREQUAL CLANG_FORMAT-NOTFOUND)
endif()

set(FILE_LIST "")
foreach(DIR IN ITEMS src tests validator benchmark fuzzing)
foreach(DIR IN ITEMS src tests validator benchmark fuzzer)
file(GLOB_RECURSE SOURCE_FILES ${DIR}/*.hpp ${DIR}/*.cpp)
list(APPEND FILE_LIST ${SOURCE_FILES})
endforeach()
Expand Down
2 changes: 2 additions & 0 deletions cmake/objects.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ set(LIBDDWAF_SOURCE
${libddwaf_SOURCE_DIR}/src/iterator.cpp
${libddwaf_SOURCE_DIR}/src/log.cpp
${libddwaf_SOURCE_DIR}/src/obfuscator.cpp
${libddwaf_SOURCE_DIR}/src/uri_utils.cpp
${libddwaf_SOURCE_DIR}/src/utils.cpp
${libddwaf_SOURCE_DIR}/src/waf.cpp
${libddwaf_SOURCE_DIR}/src/platform.cpp
Expand All @@ -29,6 +30,7 @@ set(LIBDDWAF_SOURCE
${libddwaf_SOURCE_DIR}/src/parser/parser_v2.cpp
${libddwaf_SOURCE_DIR}/src/parser/rule_data_parser.cpp
${libddwaf_SOURCE_DIR}/src/condition/lfi_detector.cpp
${libddwaf_SOURCE_DIR}/src/condition/ssrf_detector.cpp
${libddwaf_SOURCE_DIR}/src/condition/scalar_condition.cpp
${libddwaf_SOURCE_DIR}/src/matcher/phrase_match.cpp
${libddwaf_SOURCE_DIR}/src/matcher/regex_match.cpp
Expand Down
39 changes: 39 additions & 0 deletions fuzzer/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
MACRO(GET_DIRS subdirs parent)
FILE(GLOB children RELATIVE ${parent} ${parent}/*)
SET(subdirs "")
FOREACH(child ${children})
IF(IS_DIRECTORY ${parent}/${child})
LIST(APPEND subdirs ${child})
ENDIF()
ENDFOREACH()
ENDMACRO()

GET_DIRS(subdirs ${CMAKE_CURRENT_SOURCE_DIR})

set(LINK_COMPILE_FLAGS "-fsanitize=fuzzer,address,undefined,leak -fprofile-instr-generate -fcoverage-mapping")

add_library(fuzzer-common OBJECT ${LIBDDWAF_SOURCE})
set_target_properties(fuzzer-common PROPERTIES
CXX_STANDARD 20
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO
COMPILE_FLAGS ${LINK_COMPILE_FLAGS}
LINK_FLAGS ${LINK_COMPILE_FLAGS})
target_include_directories(fuzzer-common PRIVATE ${LIBDDWAF_PUBLIC_INCLUDES} ${LIBDDWAF_PRIVATE_INCLUDES})

foreach(dir ${subdirs})
set(FUZZER_NAME "${dir}_fuzzer")
file(GLOB_RECURSE FUZZER_SOURCE ${dir}/src/*.cpp)
add_executable(${FUZZER_NAME} ${FUZZER_SOURCE})

set_target_properties(${FUZZER_NAME} PROPERTIES
CXX_STANDARD 20
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO
COMPILE_FLAGS ${LINK_COMPILE_FLAGS}
LINK_FLAGS ${LINK_COMPILE_FLAGS})

target_include_directories(${FUZZER_NAME} PRIVATE ${LIBDDWAF_PUBLIC_INCLUDES} ${LIBDDWAF_PRIVATE_INCLUDES})
target_link_libraries(${FUZZER_NAME} PRIVATE fuzzer-common lib_yamlcpp)
endforeach()

File renamed without changes.
4 changes: 2 additions & 2 deletions fuzzing/build.sh → fuzzer/global/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ rm -rf build && mkdir build && cd build

cmake -DCMAKE_VERBOSE_MAKEFILE=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo ..

make -j $(nproc) fuzzer
make -j $(nproc) global_fuzzer

cp fuzzing/fuzzer ../fuzzing/
cp fuzzer/global_fuzzer ../fuzzer/global/
File renamed without changes.
File renamed without changes.
File renamed without changes.
14 changes: 14 additions & 0 deletions fuzzer/global/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
set -eu

cp build/fuzzer/global_fuzzer fuzzer/global/global_fuzzer
python3 fuzzer/global/scripts/build_corpus.py

cd fuzzer/global

export ASAN_OPTIONS=detect_leaks=1

rm -f fuzz-*.log

echo "Run global fuzzer for ${1:-60} seconds"
./global_fuzzer -timeout=0.1 -report_slow_units=0.01 -max_total_time=${1:-60} -max_len=1000 -rss_limit_mb=4096 -use_value_profile=1 -dict=sample_dict.txt -artifact_prefix=results/ -jobs=4 -workers=4 -reload=0 corpus
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
printable_chars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\x0b\x0c'

class data():
re2_regexs_with_metadata = json.load(open("fuzzing/data/regex.json", "r"))
blns = json.load(open("fuzzing/data/blns.json", "r"))
re2_regexs_with_metadata = json.load(open("fuzzer/global/data/regex.json", "r"))
blns = json.load(open("fuzzer/global/data/blns.json", "r"))


class cached_property(object):
Expand Down Expand Up @@ -484,9 +484,9 @@ def to_fuzz_dict(c):
return "".join("\\x{:02x}".format(i) for i in c.encode("utf-8"))

payload = generator.get_payload()
yaml.dump(payload["init_payload"], open("fuzzing/sample_rules.yml", "w"), default_flow_style=False)
yaml.dump(payload["init_payload"], open("fuzzer/global/sample_rules.yml", "w"), default_flow_style=False)

with open("fuzzing/sample_dict.txt", "w") as f:
with open("fuzzer/global/sample_dict.txt", "w") as f:
libfuzz_magics = [
"\x06\x06\x06",
]
Expand All @@ -498,7 +498,7 @@ def to_fuzz_dict(c):
f.write("\n")

try:
os.mkdir('fuzzing/corpus')
os.mkdir('fuzzer/global/corpus')
except FileExistsError:
pass

Expand Down Expand Up @@ -548,7 +548,7 @@ def build_payload_corpus(data):
def write_corpus_file(filename, data, log_byte=0, reload_rules=False):
reload_rules = 66 if reload_rules else 0

with open(f"fuzzing/corpus/{filename}", "wb") as f:
with open(f"fuzzer/global/corpus/{filename}", "wb") as f:
f.write(bytearray([log_byte, 0, reload_rules]))
f.write(bytearray(build_payload_corpus(data)))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def to_fuzz_dict(c):


def load_values():
data = yaml.safe_load(open("fuzzing/sample_rules.yml", "r"))
data = yaml.safe_load(open("fuzzer/global/sample_rules.yml", "r"))

results = set()
for rule in data["rules"]:
Expand Down Expand Up @@ -49,7 +49,7 @@ def load_values():
def write_values(values):
values.add("\x06\x06\x06") # fuzzer magics

with open("fuzzing/sample_dict.txt", "w") as f:
with open("fuzzer/global/sample_dict.txt", "w") as f:

for value in values:
f.write("# " + repr(value) + "\n")
Expand Down
6 changes: 3 additions & 3 deletions fuzzing/scripts/clean.sh → fuzzer/global/scripts/clean.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#!/bin/bash
set -eu

cd fuzzing
cd fuzzer/global

rm -rf corpus/
rm -f fuzz-*.log
rm -f sample_dict.txt sample_rules.yml
rm -f default.profdata default.profraw coverage.html
rm -rf fuzzer.dSYM
rm -rf fuzzer
rm -rf global_fuzzer.dSYM
rm -rf global_fuzzer
File renamed without changes.
20 changes: 20 additions & 0 deletions fuzzer/global/scripts/show_coverage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash
set -eu

cd fuzzer/global

llvm-profdata-17 merge -sparse *.profraw -o default.profdata
llvm-cov-17 show global_fuzzer -instr-profile=default.profdata -ignore-filename-regex="(vendor|fuzzer|third_party)" -format=html > coverage.html
llvm-cov-17 report -instr-profile default.profdata global_fuzzer -ignore-filename-regex="(vendor|fuzzer|third_party)" -show-region-summary=false

if [ ! -z ${1:-} ]; then
THRESHOLD=$1
TOTAL=$(llvm-cov-17 report -instr-profile default.profdata global_fuzzer -ignore-filename-regex="(vendor|fuzzer|third_party)" -show-region-summary=false | grep TOTAL)
ARRAY=($TOTAL)
COVERAGE=$(echo ${ARRAY[3]} | sed -e "s/\.[[:digit:]]*%//g")

if (( $COVERAGE < $THRESHOLD )); then
echo "Sorry, the fuzzer found no bug, but the coverage is below $THRESHOLD%. Can't call it a success." 1>&2
exit 1
fi
fi
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0000
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0001
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0002
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0003
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0004
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0005
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0006
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0007
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0008
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0009
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0010
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0011
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0012
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0013
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0014
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0015
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0016
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0017
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0018
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0019
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0020
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0021
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0022
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0023
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0024
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0025
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0026
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0027
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0028
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0029
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0030
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0031
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0032
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0033
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0034
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0035
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0036
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0037
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0038
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0039
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0040
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0041
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0042
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0043
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0044
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0045
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0046
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0047
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0048
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0049
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0050
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0051
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0052
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0053
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0054
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0055
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0056
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0057
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0058
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0059
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0060
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0061
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0062
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0063
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0064
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0065
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0066
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0067
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0068
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0069
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0070
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0071
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0072
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0073
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0074
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0075
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0076
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0077
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0078
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0079
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0080
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0081
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0082
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0083
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0084
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0085
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0086
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0087
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0088
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0089
Binary file not shown.
Binary file added fuzzer/ssrf_detector/corpus/corpus-0090
Binary file not shown.
Loading

0 comments on commit 88df1d4

Please sign in to comment.