summary refs log tree commit diff
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-05-05 02:39:41 +0200
committerRory& <root@rory.gay>2025-05-05 02:39:41 +0200
commit527b97657ecb3b050a251e164360151eb1d977b5 (patch)
tree4d04f5eb0018386ec3869445ea3ab928c7a1cfbb
downloadBlockScrapersC-527b97657ecb3b050a251e164360151eb1d977b5.tar.xz
Initial commit
-rw-r--r--ai_emma.txt4
-rw-r--r--ap_emma.txt2
-rw-r--r--ap_matrix.txt3
-rwxr-xr-xbuild_patterns.sh5
-rw-r--r--dedup.c138
-rwxr-xr-xdedup.sh5
-rw-r--r--main.c308
-rwxr-xr-xmain.sh6
-rw-r--r--p_path_contains.txt23
-rw-r--r--p_paths.txt439
-rw-r--r--p_separate.txt1
-rw-r--r--p_user_agent_legacy_browser.txt3
-rw-r--r--p_user_agent_legacy_win.txt0
-rw-r--r--p_user_agents.txt9
14 files changed, 946 insertions, 0 deletions
diff --git a/ai_emma.txt b/ai_emma.txt
new file mode 100644

index 0000000..849702f --- /dev/null +++ b/ai_emma.txt
@@ -0,0 +1,4 @@ +109.128.185.4 +192.168. +127. +10. diff --git a/ap_emma.txt b/ap_emma.txt new file mode 100644
index 0000000..a1ff752 --- /dev/null +++ b/ap_emma.txt
@@ -0,0 +1,2 @@ +GET /server.git/ +GET /matrix/thirdparty/nheko.git/ \ No newline at end of file diff --git a/ap_matrix.txt b/ap_matrix.txt new file mode 100644
index 0000000..7896936 --- /dev/null +++ b/ap_matrix.txt
@@ -0,0 +1,3 @@ + /.well-known/matrix/ + /_matrix/client/ + /_matrix/federation/ diff --git a/build_patterns.sh b/build_patterns.sh new file mode 100755
index 0000000..5b41ac3 --- /dev/null +++ b/build_patterns.sh
@@ -0,0 +1,5 @@ +#! /usr/bin/env bash + +cat ai_* > allowed_ips.txt +cat ap_* > allowed_patterns.txt +cat p_* > patterns.txt \ No newline at end of file diff --git a/dedup.c b/dedup.c new file mode 100644
index 0000000..fdfce87 --- /dev/null +++ b/dedup.c
@@ -0,0 +1,138 @@ +#include <signal.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <unistd.h> +#include <pthread.h> + +#define PATTERNS_FILE "patterns.txt" + +void* xmalloc(size_t size) +{ + void* ptr = malloc(size); + if (ptr == NULL) + { + fprintf(stderr, "Memory allocation failed\n"); + exit(EXIT_FAILURE); + } + return ptr; +} + +char** read_lines(const char* filename) +{ + clock_t ctime = clock(), lastPrint = clock(); + FILE* file = fopen(filename, "r"); + if (file == NULL) + { + fprintf(stderr, "Error opening file %s: ", filename); + perror(""); + return nullptr; + } + + int count = 0; + { + char* buf = xmalloc(10000); + while (fgets(buf, 10000, file) != NULL) + { + if (buf[0] == '#') + { + continue; + } + count++; + } + + free(buf); + rewind(file); + } +// fprintf(stderr, "Counted %d lines from %s in %.3f ms\n", count, filename, (clock() - ctime) * 1000.0 / CLOCKS_PER_SEC); + + // count = count_lines(file); + // printf("Counted %d lines from %s in %.3f ms\n", count, filename, (clock() - ctime) * 1000.0 / CLOCKS_PER_SEC); + + + rewind(file); + char** lines = xmalloc((count + 1) * sizeof(char*)); + + char* buf = xmalloc(10000); + for (int i = 0; i < count; i++) + { + if (fgets(buf, 10000, file) == NULL) + { + fprintf(stderr, "Error reading line %d from %s\n", i + 1, filename); + free(buf); + return nullptr; + } + + if (buf[0] == '#') + { + i--; + continue; + } + + buf[strcspn(buf, "\n")] = 0; + lines[i] = strdup(buf); + + +// double elapsed = (clock() - lastPrint) * 1000.0 / CLOCKS_PER_SEC; +// if (elapsed > 50) +// { +// fprintf(stderr, "\rRead %d lines from %s in %.3f ms\r", i + 1, filename, (clock() - ctime) * 1000.0 / CLOCKS_PER_SEC); +// lastPrint = clock(); +// } + } + free(buf); + lines[count] = nullptr; + + fclose(file); + printf("Read %d definitions from %s in %.3f ms\n", count, filename, (clock() - ctime) * 1000.0 / CLOCKS_PER_SEC); + return lines; +} + +char** grow_array(char** array, size_t newSize) +{ + printf("Growing array to %zu\n", newSize); + char** newArray = realloc(array, sizeof(char*) * newSize); + if (newArray == NULL) + { + fprintf(stderr, "Memory allocation failed\n"); + exit(EXIT_FAILURE); + } + return newArray; +} + + +void check_dups(char* filename) { + printf("# %s:\n", filename); + char** lines = read_lines(PATTERNS_FILE); + + if (lines == NULL) + { + fprintf(stderr, "Error reading lines\n"); + return; + } + + for (int i = 0; lines[i] != NULL; i++) + { + for (int j = 0; lines[j] != NULL; j++) + { + // check if string contains + if (lines[i] != lines[j] && strstr(lines[i], lines[j]) != NULL) + { + printf("Found duplicate: %d~%d: '%s' ~ '%s'\n", i, j, lines[i], lines[j]); + } + } + } +} + +int main(void) +{ + printf("Hello, World!\n"); + + check_dups(PATTERNS_FILE); + check_dups("allowed_ips.txt"); + check_dups("allowed_patterns.txt"); + + + return 0; +} diff --git a/dedup.sh b/dedup.sh new file mode 100755
index 0000000..7e91411 --- /dev/null +++ b/dedup.sh
@@ -0,0 +1,5 @@ +#! /usr/bin/env sh + +./build_patterns.sh +gcc -std=c23 dedup.c +./a.out \ No newline at end of file diff --git a/main.c b/main.c new file mode 100644
index 0000000..e59aef8 --- /dev/null +++ b/main.c
@@ -0,0 +1,308 @@ +#include <signal.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <unistd.h> +#include <pthread.h> + +#define ALLOWED_PATTERNS_FILE "allowed_patterns.txt" +#define ALLOWED_IPS_FILE "allowed_ips.txt" +#define PATTERNS_FILE "patterns.txt" +#define ACCESS_LOG_FILE "access.log.1" +// #define ACCESS_LOG_FILE "/var/log/nginx/access.log" + +typedef struct +{ + char** patterns; + char** allowed_patterns; + char** allowedIps; + // size_t allowedIpCount; + char** bannedIps; + size_t bannedIpCount; + size_t bannedIpSize; +} MatchRules; + + +bool print_allowed_ip = false; +bool print_allowed_pattern = false; +bool print_banned_ip = false; +// bool print_allowed_ip = strcmp(getenv("PRINT_"), "1") == 0; + +void* xmalloc(size_t size) +{ + void* ptr = malloc(size); + if (ptr == NULL) + { + fprintf(stderr, "Memory allocation failed\n"); + exit(EXIT_FAILURE); + } + return ptr; +} + +void read_lines_cb(const char* filename, void cb(char*, void*), void* cbData) +{ + if (cb == nullptr) + { + fprintf(stderr, "Callback function is null\n"); + return; + } + + clock_t ctime = clock(), lastPrint = clock(); + FILE* file = fopen(filename, "r"); + if (file == NULL) + { + fprintf(stderr, "Error opening file %s: ", filename); + perror(""); + return; + } + + int count = 0; + char* buf = xmalloc(10000); + while (fgets(buf, 10000, file) != NULL) + { + if (buf[0] == '#') + { + continue; + } + count++; + buf[strcspn(buf, "\n")] = 0; + char* line = strdup(buf); + + if (cb != nullptr) + cb(line, cbData); + free(line); + + if (count % 10 == 0) + { + double elapsed = (clock() - lastPrint) * 1000.0 / CLOCKS_PER_SEC; + if (elapsed > 50.0) + { + fprintf(stderr, "\rRead %d lines from %s in %.3f ms (%.3f/s)\r", count, filename, (clock() - ctime) * 1000.0 / CLOCKS_PER_SEC, + count * 1000.0 / (clock() - ctime)); + lastPrint = clock(); + } + } + } + + free(buf); + + fclose(file); + printf("Read %d definitions from %s in %.3f ms (%.3f/s)\n", count, filename, (clock() - ctime) * 1000.0 / CLOCKS_PER_SEC, count * 1000.0 / (clock() - ctime)); +} + +char** read_lines(const char* filename) +{ + clock_t ctime = clock(), lastPrint = clock(); + FILE* file = fopen(filename, "r"); + if (file == NULL) + { + fprintf(stderr, "Error opening file %s: ", filename); + perror(""); + return nullptr; + } + + int count = 0; + { + char* buf = xmalloc(10000); + while (fgets(buf, 10000, file) != NULL) + { + if (buf[0] == '#') + { + continue; + } + count++; + } + + free(buf); + rewind(file); + } + fprintf(stderr, "Counted %d lines from %s in %.3f ms\n", count, filename, (clock() - ctime) * 1000.0 / CLOCKS_PER_SEC); + + // count = count_lines(file); + // printf("Counted %d lines from %s in %.3f ms\n", count, filename, (clock() - ctime) * 1000.0 / CLOCKS_PER_SEC); + + + rewind(file); + char** lines = xmalloc((count + 1) * sizeof(char*)); + + char* buf = xmalloc(10000); + for (int i = 0; i < count; i++) + { + if (fgets(buf, 10000, file) == NULL) + { + fprintf(stderr, "Error reading line %d from %s\n", i + 1, filename); + free(buf); + return nullptr; + } + + if (buf[0] == '#') + { + i--; + continue; + } + + buf[strcspn(buf, "\n")] = 0; + lines[i] = strdup(buf); + + + double elapsed = (clock() - lastPrint) * 1000.0 / CLOCKS_PER_SEC; + if (elapsed > 50) + { + fprintf(stderr, "\rRead %d lines from %s in %.3f ms\r", i + 1, filename, (clock() - ctime) * 1000.0 / CLOCKS_PER_SEC); + lastPrint = clock(); + } + } + free(buf); + lines[count] = nullptr; + + fclose(file); + printf("Read %d definitions from %s in %.3f ms\n", count, filename, (clock() - ctime) * 1000.0 / CLOCKS_PER_SEC); + return lines; +} + +char** grow_string_array(char** array, size_t newSize) +{ + printf("Growing charptr array to %zu\n", newSize); + char** newArray = realloc(array, sizeof(char*) * newSize); + if (newArray == NULL) + { + fprintf(stderr, "Memory allocation failed\n"); + exit(EXIT_FAILURE); + } + return newArray; +} + +void process_line(char* line, void* cbData) +{ + MatchRules* rules = cbData; + + if (line == NULL) + { + fprintf(stderr, "Line is null @ process_line!\n"); + return; + } + + + char* ip = xmalloc(32); + for (int i = 0; i < 32; i++) + { + ip[i] = 0; + } + strncpy(ip, line, strcspn(line, " ")); + + // printf("meow %s\n", ip); + + + for (int j = 0; rules->allowedIps[j] != NULL; j++) + { + if (strstr(ip, rules->allowedIps[j]) == ip) + { + if (print_allowed_ip) + printf("Allowed IP: \"%s\" (~%s): %s\r", ip, rules->allowedIps[j], line); + free(ip); + return; + } + } + + // printf("Checking IP %s against %d banned IPs\n", ip, rules->bannedIpCount); + for (size_t j = 0; j < rules->bannedIpCount; j++) + { + if (strstr(ip, rules->bannedIps[j]) == ip) + { + if (print_banned_ip) + printf("Banned IP: \"%s\": %s\r", rules->bannedIps[j], line); + free(ip); + return; + } + } + + for (int i = 0; rules->allowed_patterns[i] != NULL; i++) + { + if (strstr(line, rules->allowed_patterns[i]) != NULL) + { + if (print_allowed_pattern) + printf("%15s matched allowed pattern \"%s\": %s\n", ip, rules->allowed_patterns[i], line); + return; + } + } + + for (int i = 0; rules->patterns[i] != NULL; i++) + { + if (strstr(line, rules->patterns[i]) != NULL) + { + if (rules->bannedIpCount >= rules->bannedIpSize) + { + rules->bannedIpSize *= 2; + rules->bannedIps = grow_string_array(rules->bannedIps, rules->bannedIpSize); + } + + rules->bannedIps[rules->bannedIpCount] = ip; + rules->bannedIps[rules->bannedIpCount][strcspn(rules->bannedIps[rules->bannedIpCount], "\n")] = 0; + rules->bannedIps[rules->bannedIpCount + 1] = nullptr; + rules->bannedIpCount++; + printf("[Bans=%6lu] %15s matched pattern \"%s\": %s\n", rules->bannedIpCount, ip, rules->patterns[i], line); + + + signal(SIGCHLD, nullptr); + __pid_t pid = fork(); + if (pid == 0) + { + if (execvp("iptables", (char*[]){"iptables", "-A", "INPUT", "-s", ip, "-j", "DROP", nullptr}) != 0) + { + fprintf(stderr, "Error executing iptables: "); + perror(""); + } + } + else if (pid < 0) + { + perror("Fork failed"); + exit(1); + } + + return; + } + } + + free(ip); +} + + +int main(void) +{ + printf("Hello, World!\n"); + print_allowed_ip = getenv("D_PRINT_ALLOWED_IP") != NULL && strcmp(getenv("D_PRINT_ALLOWED_IP"), "1") == 0; + print_allowed_pattern = getenv("D_PRINT_ALLOWED_PATTERN") != NULL && strcmp(getenv("D_PRINT_ALLOWED_PATTERN"), "1") == 0; + print_banned_ip = getenv("D_PRINT_BANNED_IP") != NULL && strcmp(getenv("D_PRINT_BANNED_IP"), "1") == 0; + + MatchRules rules; + rules.patterns = read_lines(PATTERNS_FILE); + rules.allowed_patterns = read_lines(ALLOWED_PATTERNS_FILE); + rules.allowedIps = read_lines(ALLOWED_IPS_FILE); + rules.bannedIpSize = 64; + rules.bannedIpCount = 0; + rules.bannedIps = xmalloc(sizeof(char**) * rules.bannedIpSize); + //rules.bannedIps[0] = ; + + read_lines_cb(ACCESS_LOG_FILE, process_line, &rules); + + for (int i = 0; rules.bannedIps[i] != NULL; i++) + { + free(rules.bannedIps[i]); + } + free(rules.bannedIps); + + for (int i = 0; rules.patterns[i] != NULL; i++) + { + free(rules.patterns[i]); + } + free(rules.patterns); + free(rules.allowedIps); + for (int i = 0; rules.bannedIps[i] != NULL; i++) + { + free(rules.bannedIps[i]); + } + free(rules.bannedIps); + + return 0; +} diff --git a/main.sh b/main.sh new file mode 100755
index 0000000..02565de --- /dev/null +++ b/main.sh
@@ -0,0 +1,6 @@ +#! /usr/bin/env sh + +./build_patterns.sh +gcc -O0 -ggdb -std=c23 main.c || exit 1 +#sudo valgrind --leak-check=full -s ./a.out +rsync -raPz *.c *.txt a.out rory.gay: diff --git a/p_path_contains.txt b/p_path_contains.txt new file mode 100644
index 0000000..b53129c --- /dev/null +++ b/p_path_contains.txt
@@ -0,0 +1,23 @@ +;/actuator +;/env +;/internal +;/META-INF +/phpunit +eval-stdin.php +phpinfo +/.git/ +.env +.htaccess +web.config +/.svn/ +/.AWS_/credentials +/.DS_Store +/.__info.php +/.aws/ +/.circleci/configs/development.yml +/.config/sftp.json +/.dockerignore +/.npmrc +/.sendgrid +/.travis.yml +/.vscode/sftp.json diff --git a/p_paths.txt b/p_paths.txt new file mode 100644
index 0000000..9508814 --- /dev/null +++ b/p_paths.txt
@@ -0,0 +1,439 @@ + /%61%63%74%75%61%74%6f%72/%65%6e%76 + /%61%70%69/%61%63%74%75%61%74%6f%72/%65%6e%37%36 + /%61%70%69/%61%63%74%75%61%74%6f%72/%65%6e%76 + /%61%70%69/%65%6e%37%36 + /%61%70%69/%65%6e%76 + /%61%70%69/%69%6e%74%65%72%6e%61%6c/%61%63%74%75%61%74%6f%72/%65%6e%76 + /%65%6e%76 + /%67%61%74%65%77%61%79/%61%63%74%75%61%74%6f%72/%65%6e%76 + /%67%61%74%65%77%61%79/%65%6e%76 + /%6d%61%6e%61%67%65%6d%65%6e%74/%61%63%74%75%61%74%6f%72/%65%6e%76 + /%6d%61%6e%61%67%65%6d%65%6e%74/%65%6e%76 + /%6d%61%6e%61%67%65/%61%63%74%75%61%74%6f%72/%65%6e%76 + /%6d%61%6e%61%67%65/%65%6e%76 + /+CSCOE+/logon.html + /.wp-config.php.swp + //admin/login.asp + //installer.php + //webpages/login.html + /0-info.php + /00_server_info.php + /01-info.php + /0_info.php + /0info.php + /1.php + /1_1_PhpInfo.php + /2018/wp-includes/wlwmanifest.xml + /2019/wp-includes/wlwmanifest.xml + /3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3 + /5info.php + /@vite/env + /Account/Login + /AwsConfig.json + /Awsconfig.json + /CFIDE/componentutils/ + /CHANGELOG.txt + /CSS/Miniweb.css + /Dockerfile + /HNAP1 + /IPCamDesc.xml + /NuLM + /OA_HTML/AppsLocalLogin.jsp + /PHPInfo.php + /PSIA/index + /PhpInfo.php + /Portal/Portal.mwsl + /Portal0000.htm + /Public/home/js/check.js + /RDWeb/ + /README.md + /ReportServer + /Telerik.Web.UI.WebResource.axd + /WebApp/js/UI_String.js + /WebInterface/ + /__Additional + /_all_dbs + /_phpinf.php + /_wpeprivate/config.json + /aaa9 + /aab8 + /aab9 + /ab2g + /ab2h + /about + /actuator/env + /actuator/gateway/routes + /actuator/health + /admin.asp + /admin.cfm + /admin.cgi + /admin.html + /admin.jsa + /admin.jsp + /admin.php + /admin.pl + /admin/ + /administrator/index.php + /administrator/manifests/files/joomla.xml + /ads.txt + /alive.php + /allversions + /api-docs + /api/actuator/env + /api/config.js + /api/config/config.yml + /api/credentials + /api/env + /api/objects/codes.php.save + /api/proxy + /api/server/version + /api/session/properties + /api/sonicos/auth + /api/sonicos/is-sslvpn-enabled + /api/sonicos/tfa + /api/v1.0/environment + /api/v1/check-version + /api/v1/label/__name__/values + /api/v1/metadata + /api/v1/notifications/live + /api/v1/proxy + /api/v1/query + /api/v1/status/buildinfo + /api/v1/status/runtimeinfo + /api/v1/ws/server + /api/v2/about + /api/v2/proxy + /api/v3/meta + /api/version + /api/vip/i18n/api/v2/translation/products/vRNIUI/versions/1 + /api_keys/sendgrid_keys.json + /apis/config/config.js + /apis/controllers/users.js + /app.js + /app.py + /app/config/parameters.yml + /app/etc/env.php + /app/etc/local.xml + /application.properties + /application.yml + /apps/zxtm/login.cgi + /aspera/faspex/ + /assets/env.js + /assets/index-BPbBbNOr.css + /assets/index-DuE_NgAI.js + /aura + /auth.html + /auth.json + /auth1.html + /autodiscover/autodiscover.json + /aws-secret.yaml + /aws.yml + /aws/credentials + /backend/config/default.yml + /backend/config/development.yml + /backend/config/settings.yml + /backup + /base.cfm + /base.jsa + /base.shtml + /baseDstu2/metadata + /baseDstu3/metadata + /baseR2/metadata + /baseR3/metadata + /baseR4/metadata + /baseR5/metadata + /bitrix/php_interface/dbconn.php + /blog + /boaform/admin/formLogin + /bootstrap/cache/config.php + /build.gradle + /c/login + /cdn-cgi/trace/cdn-cgi/trace + /centreon/api/latest/platform/versions + /cf_scripts/scripts/ajax/ckeditor/ckeditor.js + /cgi-bin/ + /cloud/Scraper.js + /cluster/list.query + /cms/wp-includes/wlwmanifest.xml + /composer.json + /computeMetadata/v1 + /config + /confluence/rest/applinks/1.0/manifest + /contact/ + /containers/json + /controller/admin/post.js + /controller/api/post.js + /controllers/settings.js + /core/install.php + /cslu/v1/core/conf + /css/elfinder.min.css + /css/eonweb.css + /css/images/PTZOptics_powerby.png + /dana-cached/hc/HostCheckerInstaller.osx + /dana-na/nc/nc_gina_ver.txt + /database.json + /db.ini + /db_backup.sql + /debug.php + /debug/default/view + /default.html + /default.jhtml + /default.jsa + /developmentserver/metadatauploader + /dniapi/userInfos + /dns-query + /doc/index.html + /docker-compose. + /docs/cplugError.html/ + /druid/index.html + /ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application + /en%76; + /env + /epa/scripts/win/nsepa_setup.exe + /etc/gitconfig + /evox/about + /ext-js/app/common/zld_product_spec.js + /fhir-server/api/v4/metadata + /fhir/metadata + /fog/management/index.php + /form.html + /forms/doLogin + /ftptest.cgi + /gatsby-config.js + /geoip/ + /geoserver + /getcpuutil.php-bakworking + /git/.config + /global-protect/login.esp + /health + /hello.world + /helm/values.yaml + /helpdesk/WebObjects/Helpdesk.woa + /helper.js + /helper/EmailHelper.js + /helpers/utility.js + /home.aspx + /home.cfm + /home.html + /hudson + /human.aspx + /i.php + /identity + /index.aspx + /index.cfm + /index.cgi + /index.jsp + /index.php + /index.pl + /index.shtml + /indice.cfm + /indice.cgi + /indice.html + /info + /inicio.php + /inicio.pl + /instance/sendgrid_keys.py + /internal/api + /internal/proxy + /internal_forms_authentication + /jasperserver-pro/login.html + /jasperserver/login.html + /jasperserverTest/login.html + /javascript/validation/OEM.js + /joomla/configuration.php-dist + /js/NewWindow_2_all.js + /js/app.js + /js/config.js + /js/main.js + /karma.conf.json + /keys/sendgrid_keys.json + /kylin/ + /language/en-GB/en-GB.xml + /lara/info.php + /laravel/info.php + /latest/meta-data + /latest/user-data + /lms/db + /local.inc.php + /local.ini + /local.json + /local.php + /local.xml + /local_settings.py + /localstart.jsa + /login.action + /login.asp + /login.do + /login.htm + /login.jsp + /login.php + /login/login.html + /logon/LogonPoint/index.html + /logs/error.php + /magento_version + /main.asp + /main.cfm + /main.js + /main.yml + /manage/account/login + /manager/html + /media/wp-includes/wlwmanifest.xml + /menu.aspx + /menu.cfm + /menu.php + /metadata + /modules/contrib/sendgrid_mail/ + /my_env/chakaash.py + /my_env/newsletter.py + /my_env/palash.py + /mytest/astech_robot.js + /new + /nmaplowercheck1745842941 + /nova-api/styles + /o8kJ + /odinhttpcall1746060903 + /odinhttpcall1746102992 + /officescan/console/cgi/cgiChkMasterPwd.exe + /officescan/console/html/localization.js + /old + /onvif/device_service + /openapi.json + /openapi/v2 + /opt/aws/ + /owa/ + /owncloud/status.php + /p/login/ + /package.json + /pandora_console/ + /parameters.yaml + /parameters.yml + /partner/config/config.js + /partymgr/control/main + /password.php + /php.ini + /php.php + /php/ztp_gate.php/.js.map + /php_info + /phpmyadmin/index.php + /phpmyadmin4.8.5/index.php + /pi.php + /pmd/index.php + /pom.xml + /pools + /portal + /private/ + /proxy + /public/index.php + /public/js/main.js + /query + /r-seenet/index.php + /r2/metadata + /r3/metadata + /r4/metadata + /r5/metadata + /readme.txt + /register/ + /remote/fgt_lang + /remote/login + /resolve + /rest/applinks/1.0/manifest + /root/info.php + /root/infophp + /s/aura + /s/fact + /s/sfsites/aura + /s3.js + /scripts/WPnBr.dll + /scripts/nodemailer.js + /sdk + /secret + /secure-config.json + /sendgrid + /server-info + /server-status + /server.js + /server.php + /server/config/database.js + /server/s3.js + /server_info.php + /service/email_service.py + /settings.bak + /settings.cfg + /settings.inc.php + /settings.ini + /settings.json + /settings.php + /settings.py + /settings.xml + /settings.yaml + /settings/sendgrid_config + /settings/sendgrid_keys + /setup.cgi + /sfsites/aura + /sftp-config.json + /sftp.json + /shared/config/config.js + /shop/wp-includes/wlwmanifest.xml + /showLogin.cc + /site/wp-includes/wlwmanifest.xml + /sitecore/shell/sitecore.version.xml + /sitemap.xml + /sites/all/modules/ + /sites/all/themes/ + /sites/default/settings.php + /sito/wp-includes/wlwmanifest.xml + /sms.py + /solr/ + /sonicui/7/login/ + /src/config.js + /sslvpnLogin.html + /sslvpn_logon.shtml + /static/admin/javascript/hetong.js + /static/historypage.js + /stats + /status + /storage/framework/cache/ + /storage/framework/sessions/ + /storage/framework/views/ + /storage/logs/laravel.log + /storage/sendgrid.json + /sugar_version.json + /swagger-ui.html + /swagger.js + /systembc/password.php + /t4 + /telescope/requests + /temp + /teorema505 + /test + /tmp.php + /tos/index.php + /typo3conf/localconf.php + /ucT0 + /upl.php + /user + /v1 + /v2/_catalog + /var/aws/ + /var/lib/aws/ + /var/log/ + /var/logs/ + /versa/login + /version + /vpn/index.html + /vpnsvc/connect.cgi + /wRGL + /web/ + /webportal.cgi + /website/wp-includes/wlwmanifest.xml + /webui + /wordpress + /workplace/home.action + /wp + /wsman + /xml/info.xml + /xmldata + /xmlrpc.php + /yarn.lock + /zabbix/favicon.ico + <NULL> diff --git a/p_separate.txt b/p_separate.txt new file mode 100644
index 0000000..f7b9062 --- /dev/null +++ b/p_separate.txt
@@ -0,0 +1 @@ + "CONNECT diff --git a/p_user_agent_legacy_browser.txt b/p_user_agent_legacy_browser.txt new file mode 100644
index 0000000..87f53a0 --- /dev/null +++ b/p_user_agent_legacy_browser.txt
@@ -0,0 +1,3 @@ + Firefox/71.0" + Chrome/74.0 + Chrome/60.0 diff --git a/p_user_agent_legacy_win.txt b/p_user_agent_legacy_win.txt new file mode 100644
index 0000000..e69de29 --- /dev/null +++ b/p_user_agent_legacy_win.txt
diff --git a/p_user_agents.txt b/p_user_agents.txt new file mode 100644
index 0000000..0d25399 --- /dev/null +++ b/p_user_agents.txt
@@ -0,0 +1,9 @@ +AliyunSecBot/Aliyun (AliyunSecBot@service.alibaba.com) +Mozilla/5.0 zgrab/ +Mozilla/5.0; Keydrop.io/ +FH Muenster/Security-Scanner/fh-muenster.de +"'Mozilla/5.0 (compatible; GenomeCrawlerd/1.0; +https://www.nokia.com/genomecrawler)'" +l9explore/1.2.2 +"Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)" +"Mozilla/5.0 (compatible; Odin; https://docs.getodin.com/)" + abuse.xmco.fr"