mirror of
https://github.com/epi052/feroxbuster.git
synced 2026-05-28 01:11:12 -03:00
added mutual auth testing server and cert generating script
This commit is contained in:
@@ -137,7 +137,7 @@ mod tests {
|
||||
true,
|
||||
&headers,
|
||||
None,
|
||||
vec!["tests/server-test-cert-1.pem".to_string()],
|
||||
vec!["tests/mutual-auth/certs/server/server.crt.1".to_string()],
|
||||
None,
|
||||
None,
|
||||
)
|
||||
@@ -156,7 +156,7 @@ mod tests {
|
||||
true,
|
||||
&headers,
|
||||
None,
|
||||
vec!["tests/server-test-cert.der".to_string()],
|
||||
vec!["tests/mutual-auth/certs/server/server.der".to_string()],
|
||||
None,
|
||||
None,
|
||||
)
|
||||
@@ -178,8 +178,8 @@ mod tests {
|
||||
&headers,
|
||||
None,
|
||||
vec![
|
||||
"tests/server-test-cert-1.pem".to_string(),
|
||||
"tests/server-test-cert.der".to_string(),
|
||||
"tests/mutual-auth/certs/server/server.crt.1".to_string(),
|
||||
"tests/mutual-auth/certs/server/server.der".to_string(),
|
||||
],
|
||||
None,
|
||||
None,
|
||||
@@ -200,7 +200,7 @@ mod tests {
|
||||
true,
|
||||
&headers,
|
||||
None,
|
||||
vec!["tests/client-test-key.pem".to_string()],
|
||||
vec!["tests/mutual-auth/certs/client/client.key".to_string()],
|
||||
None,
|
||||
None,
|
||||
)
|
||||
|
||||
@@ -120,13 +120,13 @@ impl HeuristicTests {
|
||||
) {
|
||||
if e.to_string().contains(":SSL") {
|
||||
ferox_print(
|
||||
&format!("Could not connect to {target_url} due to SSL errors (run with -k to ignore), skipping...\n => {}", e.root_cause()),
|
||||
&format!("Could not connect to {target_url} due to SSL errors (run with -k to ignore), skipping...\n => {}\n", e.root_cause()),
|
||||
&PROGRESS_PRINTER,
|
||||
);
|
||||
} else {
|
||||
ferox_print(
|
||||
&format!(
|
||||
"Could not connect to {target_url}, skipping...\n => {}",
|
||||
"Could not connect to {target_url}, skipping...\n => {}\n",
|
||||
e.root_cause()
|
||||
),
|
||||
&PROGRESS_PRINTER,
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEEzCCAvsCFFl+iSi56LZsTqzz5Uo93MEr2VPsMA0GCSqGSIb3DQEBCwUAMEUx
|
||||
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
|
||||
cm5ldCBXaWRnaXRzIFB0eSBMdGQwIBcNMjMwNTAyMTA0ODQ1WhgPMjA1MDA5MTYx
|
||||
MDQ4NDVaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
|
||||
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEBAQUA
|
||||
A4ICDwAwggIKAoICAQCMcPcOliSzzcmRuJVEUsbtlk8x95+FC2y0m38XaayQk2am
|
||||
DNi/UxAzlUsmWiw7a8E5OPnDZ0Vomr6LbpyjxFYx7ip1FWqGgsN033E44pANo5/M
|
||||
pWx7hB+LLvhag3nRP2tvIST3rKfIEDmALMBwUPstwaAU9elYPWa21AiZsYu/JHxX
|
||||
1vXs0C9NgQe+xp5KySj0OS7uJl2zMvTUMLwrIv/mb/T2mDOjKBKEiySY2XzhZ5mt
|
||||
FWJoT746IPseD7XWsipubmzD6Pe0I8P718PgkRH2tcWAn99NNVeBgycSmv8sbPuJ
|
||||
bNmZtq3RFDC1OMdVUWGydePWzE4/RdC2IOvZ61HP1PbT1iUSDltjENI/mtF77LSO
|
||||
bW6yTxlPpHZIxdQ2p5hjBXywsffaeeAEBeZfZnQ+l5NWlOs+/sdaRMzjydK9m7mB
|
||||
KHBcBytGA7WhZRw6U+W3kYrHCAGQ2XT2G0Ic7NEtcnUOyo1X1YkyVqUsqnCKqky6
|
||||
k++r79lU7W7Pdh6kzN5QcTNiP1B/tHcVABRibZbSg037e979lHiFUEsYWRNfFRGt
|
||||
6yKuZbdOp70Xz+E80EjzgW2TgLRC7uDU+KuzzHqMeE/y8qrHDjhtP5JzWk75vNZf
|
||||
gBW1BZz2fUQTRx5kTXfAi5JlqS6qeyaWJ1kkBGb/7sfSaXIJ3X0t17ccEoDS/wID
|
||||
AQABMA0GCSqGSIb3DQEBCwUAA4IBAQACsWdZOXs96bfWwrVyJHLqe9zqNcO//4tB
|
||||
ZsP2bodjmJd6q6HDAZItb+PN6++FLyK5H3hLiH6ikn64zogvidB6F7Qyr4dKRAuc
|
||||
SaKb3QnmzC1gNImD37IIsNQdPswn8giPYT/koqJlvF8uPVFf0s7ml+nhzCwx4nTs
|
||||
yJvwzHrSDUVMfzt/MEh5TNfbCh9kCP6fdBcBUsDlK6jnMRmEEWk1603LgKTzE/tF
|
||||
HSxB1r29lvdJTjwvHuL5Du1ZrnG2adn/OfGi1PJr6Z7FncFqiPqozEqa3GqWZaos
|
||||
243yZaP5NPFUHNwAMmT1x76rQZj0cMrSSlSM8apoFLffJLXDQOrp
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,52 +0,0 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
0S+JA2o3sM6fCPguNTeGqT8P3ZyPVVc=
|
||||
-----END PRIVATE KEY-----
|
||||
17
tests/mutual-auth/Caddyfile
Normal file
17
tests/mutual-auth/Caddyfile
Normal file
@@ -0,0 +1,17 @@
|
||||
(mTLS) {
|
||||
tls {
|
||||
client_auth {
|
||||
mode require_and_verify
|
||||
trusted_ca_cert_file certs/server/ca.crt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
https://localhost:8001 {
|
||||
import mTLS
|
||||
log
|
||||
|
||||
handle / {
|
||||
file_server browse
|
||||
}
|
||||
}
|
||||
6
tests/mutual-auth/README.md
Normal file
6
tests/mutual-auth/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Testing mTLS
|
||||
|
||||
- run `gen-certs.sh`
|
||||
- run `sudo /path/to/caddy run`
|
||||
- expect listener on port 8001
|
||||
- run `feroxbuster -u https://localhost:8001 --client-key certs/client/client.key --client-cert certs/client/client.crt`
|
||||
17
tests/mutual-auth/certs/client/client.crt
Normal file
17
tests/mutual-auth/certs/client/client.crt
Normal file
@@ -0,0 +1,17 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICqzCCAZMCFE22XDzrLwkJIkb3EdP333d4HoXQMA0GCSqGSIb3DQEBCwUAMBMx
|
||||
ETAPBgNVBAMMCFNlcnZlckNBMB4XDTIzMDUwNjExMDYyM1oXDTI0MDUwNTExMDYy
|
||||
M1owETEPMA0GA1UEAwwGQ2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||
CgKCAQEAz3EPWMsh+dfPdbHtpNhizZZs+r0djzdHHgkbnNQ1PodWDnv0Rf1YgNEa
|
||||
umQuUvIgjMtorRqbz9HLG4+H2aR5KHgPwBNHyKS4PEiQvWDV88aJxdMbgL/IfzAt
|
||||
di85UcBUkyqUe1r6vIS0smJo1wVwxLEmD6kdt1BEI3LaK1j99JeG8TAS8f+/xf4s
|
||||
ouE4lA+y3bJQP18wUGuyudntFQBKgjY2Tx+RWbBcx0zW68M7IMQ5bDz0oK9MYw8G
|
||||
q2vwcRyMLuoyNpbDT5mI2wsQu/r2O0CCNbtkg5JxasdYR7Llw9YTl74st3dshM9e
|
||||
4V5uuVotcWXW6U518nWHOQy9qiBSOQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQB4
|
||||
xOVvWrRZ4SBqzaen32COXpjddX28Q7YmNB/UKl3ZT7R1dIjUMfJz2le0mj2UpSAr
|
||||
rDT7PCsXnDP0KswGiJC3IVTa/hnkUk798jwUvp221jvebyy8/NMWfWPoIKfhELdb
|
||||
3uJfrGyQuB8Zf9Q1hc9jYDX27EbGaDSpOrpE9Ej2riVnbgBKZsS5jcfY8JDrkv+F
|
||||
4cP2pTu6mVRuU1Bzx3SB0Vg2uGi1QTJuuA905Y3zpoRfTtybKlRRkMQk+46xrdyV
|
||||
x64wq9zcL6Kq4D/UE3EjLnjbRw6H6g8jbnBjT5KRfP2tmbF9RTZs44Dl0hYvXber
|
||||
HrvWtxHG8OJ8BLQg1rQd
|
||||
-----END CERTIFICATE-----
|
||||
28
tests/mutual-auth/certs/client/client.key
Normal file
28
tests/mutual-auth/certs/client/client.key
Normal file
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDPcQ9YyyH51891
|
||||
se2k2GLNlmz6vR2PN0ceCRuc1DU+h1YOe/RF/ViA0Rq6ZC5S8iCMy2itGpvP0csb
|
||||
j4fZpHkoeA/AE0fIpLg8SJC9YNXzxonF0xuAv8h/MC12LzlRwFSTKpR7Wvq8hLSy
|
||||
YmjXBXDEsSYPqR23UEQjctorWP30l4bxMBLx/7/F/iyi4TiUD7LdslA/XzBQa7K5
|
||||
2e0VAEqCNjZPH5FZsFzHTNbrwzsgxDlsPPSgr0xjDwara/BxHIwu6jI2lsNPmYjb
|
||||
CxC7+vY7QII1u2SDknFqx1hHsuXD1hOXviy3d2yEz17hXm65Wi1xZdbpTnXydYc5
|
||||
DL2qIFI5AgMBAAECggEAC8XVeoM1w4uITDxLucMnkVYgC3dj5/K5zCY1bVg8SNcO
|
||||
rt4BSh8TkKT9ZLZmjCHOb9sj7s4PqXLVOXRTAAq17xJoR2z4shYKGC7AmyTVo6MB
|
||||
AuuFGDCaMQCzlc1ejgmRqzP7jwgl6oDIDgcofsqB4MHSgIlHJNYO9emQ4OypJgJA
|
||||
xd8KT5S/hThJG1VqJ6P0oiB/WBlzcJ5wX4GSVE25RlpRX8ogqCyI9V+SRq2CrG7U
|
||||
Jqv3Kbag7derTfqmsKyjv/kckOgfKH/rm61HMrYshcPfgxL2fZe2Q8wCTexvhZwZ
|
||||
8vD8bvR++SxOxbigCIB7ReYgmoj4bocjqDX4vUhe8QKBgQD35oDdOa2uiOs7NWVf
|
||||
IV1ZwPWxxwnYFIEA8paQwsYGIxHrYNdGSsGBzwvLDPpTeOO0VdoC+sP5zytTv547
|
||||
djeOzGf9Hj6swa5tPdzkYjZV/85mnmGKaEmmCN4AvpYol5l2BTetFtX0v6QEaqvU
|
||||
uZbV5X2UcuClExA0frNUJDVHkQKBgQDWOCZq1r9X3iEkcFSBhironVNj80jFqIum
|
||||
rMbGUUcOI05U2hkmMDluSW1NNL2k+SNJXq7fmkjIQEXffqcbsXUSIQB0MU6yddt5
|
||||
7+c19ioZChx91Kl049rKQ21kPTh7D0TCUvDQLapt2xbUNg6rGCLSrkkVlWwxLnDU
|
||||
pNk/c4QcKQKBgEreedLWhabtwSV7pecKO5hM16dedpGk96UinuiPeqEF3HabI8kd
|
||||
8L1Um7oybDPjkdm4CATYWXHL6Mj9WTuaI4NkJo/in4krYZOqmFj9dG2auWpysQDN
|
||||
KFkV2n6dENqnlnh3cO48tFebvVx8HvM7Ldvh2ICKBWC1ljJUhbKG0PSRAoGBAJVy
|
||||
fNLCWKEbVbHPMBVgnaTExT2Qp29F4493MAGBCHpDhU1LDoqG0DoxvbBEIB3stYJl
|
||||
LMjQIQCbXmPKPxjh15O7NE7ba1SzRleuV3Zc8wee9zuN1l6265d6LOHml/W6NDUB
|
||||
mgESKrkTRLztrZQNdZXXgyMsqFszVAH1s55Bn6PpAoGBAN13Ev7Ynysdvkc3aHO6
|
||||
qM0hH6mAlEOAyCTk5r/0cyz9rGyYWXiVXen0ftSaBcISdzhrVkRDs3rLrHwEXdu1
|
||||
Y2Z1HhZkILw/C4t+Eaa6FOWfwwPAdOpaxYpxKxCEeCBKmkd1z0Dx0vDEDrt+AaHa
|
||||
UYIQ9wAbZpuKGfFQceyr1lBO
|
||||
-----END PRIVATE KEY-----
|
||||
19
tests/mutual-auth/certs/server/ca.crt
Normal file
19
tests/mutual-auth/certs/server/ca.crt
Normal file
@@ -0,0 +1,19 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDBzCCAe+gAwIBAgIUG3vb4pIbvaI/+LzOpu6Z4b6s4iIwDQYJKoZIhvcNAQEL
|
||||
BQAwEzERMA8GA1UEAwwIU2VydmVyQ0EwHhcNMjMwNTA2MTEwNjIzWhcNMzMwNTAz
|
||||
MTEwNjIzWjATMREwDwYDVQQDDAhTZXJ2ZXJDQTCCASIwDQYJKoZIhvcNAQEBBQAD
|
||||
ggEPADCCAQoCggEBAKazNKPaH8LDzcaZRvBLrDNJkL1pukmB36mbczj07hZVbPmS
|
||||
/hyBvAdBFom0ZTw5dIpsUtRSZbDPrsCVpdY9O1jxwhrDi6mfvyJtKLEbTW4PvARq
|
||||
WwDhpa2SYwBMI+0ilXWTAzwJuWT1NhuUsAcB6SGwkNm3iKqZUDxn3V2L2AHRcKEJ
|
||||
9Zn9ePP4BsvtAS8ZBLxTnoo7R2SHiWwjDwuTtS4fQ5bWzGkmdmeuJ7JJt4ZzQV+m
|
||||
MBqrK3XVi+MXayvt5affGvHj/KuhlVBXHnUgSvEgFpuhK9elsds2iRho8mp1d0iH
|
||||
EIMp9LHVftsIpUxbKt/Pa/JL7oG9LBIvPj/SIjsCAwEAAaNTMFEwHQYDVR0OBBYE
|
||||
FLlRKsDb/ducVIBirME0VJZ3TwfkMB8GA1UdIwQYMBaAFLlRKsDb/ducVIBirME0
|
||||
VJZ3TwfkMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAD7lqNzU
|
||||
wxuyO60Gn2q6DUBb1Kseq6bSndNHeagdfMfKManKl1YObnB0ciTO3bnmNXiXktSu
|
||||
BsQzlmr3O+H6X39Vpdyqq4SoOcOt0I+bvBykk1UZqEoc7jGXdZVmnk9Q0uoKtWxJ
|
||||
rV9CHEhyPNnEh4W07y05UUn9S6EiKy5232yi4USdmk44GXhFblS5inhTTxca2vEq
|
||||
9h+FH+QZ7ehaAaWR+EaQjXNwm2mN7gWxM3Q6RfK9N67MHD9ggmfdyZmnyt5gCidC
|
||||
ys4W4stEh6d6fXZT77dcGaHKdXW3GwP3ZcAlRFYPqpAvWzndC9kDCgIULeSP1ALy
|
||||
cILcb0HQvNS0t60=
|
||||
-----END CERTIFICATE-----
|
||||
17
tests/mutual-auth/certs/server/server.crt
Normal file
17
tests/mutual-auth/certs/server/server.crt
Normal file
@@ -0,0 +1,17 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICrzCCAZcCFGMKRtmMLuut+sxC+TbWQfum7oXZMA0GCSqGSIb3DQEBCwUAMBQx
|
||||
EjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0yMzA1MDYxMTA2MjNaFw0zMzA1MDMxMTA2
|
||||
MjNaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||
ADCCAQoCggEBAKazNKPaH8LDzcaZRvBLrDNJkL1pukmB36mbczj07hZVbPmS/hyB
|
||||
vAdBFom0ZTw5dIpsUtRSZbDPrsCVpdY9O1jxwhrDi6mfvyJtKLEbTW4PvARqWwDh
|
||||
pa2SYwBMI+0ilXWTAzwJuWT1NhuUsAcB6SGwkNm3iKqZUDxn3V2L2AHRcKEJ9Zn9
|
||||
ePP4BsvtAS8ZBLxTnoo7R2SHiWwjDwuTtS4fQ5bWzGkmdmeuJ7JJt4ZzQV+mMBqr
|
||||
K3XVi+MXayvt5affGvHj/KuhlVBXHnUgSvEgFpuhK9elsds2iRho8mp1d0iHEIMp
|
||||
9LHVftsIpUxbKt/Pa/JL7oG9LBIvPj/SIjsCAwEAATANBgkqhkiG9w0BAQsFAAOC
|
||||
AQEAjPAtZs1by2h/1fr/ypojw16llzbReT8J+T8YHSTf6YwjoE83I0QDOLEo1ax+
|
||||
e/8qyQLs0EnlfdomNyA4Z/ECbY5c1nY0Dp//u6WH7AwLUx5HiwUw4Fmxu9Q/oB1o
|
||||
3vhIPl5Vd/VpdxDzuO8q8WvagwjVaxsZP3PVaBDRzZZPldPgTakfk+w5XnjNfgJi
|
||||
RDRutTRe6KBOxt7PAzAVV71FtOIq0b4xCNJGNurYBhRgZ5iQ7yMw+I5Vte1TakWr
|
||||
9gfE/yoKbU1W+y0QxSDTsnTCO4i3mXmBTuceTVWELwqZcr34W7n3vD8UtZQfanML
|
||||
cHCZaLPSMDuDtS74FSamP3i+oQ==
|
||||
-----END CERTIFICATE-----
|
||||
17
tests/mutual-auth/certs/server/server.crt.1
Normal file
17
tests/mutual-auth/certs/server/server.crt.1
Normal file
@@ -0,0 +1,17 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICrzCCAZcCFGMKRtmMLuut+sxC+TbWQfum7oXZMA0GCSqGSIb3DQEBCwUAMBQx
|
||||
EjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0yMzA1MDYxMTA2MjNaFw0zMzA1MDMxMTA2
|
||||
MjNaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||
ADCCAQoCggEBAKazNKPaH8LDzcaZRvBLrDNJkL1pukmB36mbczj07hZVbPmS/hyB
|
||||
vAdBFom0ZTw5dIpsUtRSZbDPrsCVpdY9O1jxwhrDi6mfvyJtKLEbTW4PvARqWwDh
|
||||
pa2SYwBMI+0ilXWTAzwJuWT1NhuUsAcB6SGwkNm3iKqZUDxn3V2L2AHRcKEJ9Zn9
|
||||
ePP4BsvtAS8ZBLxTnoo7R2SHiWwjDwuTtS4fQ5bWzGkmdmeuJ7JJt4ZzQV+mMBqr
|
||||
K3XVi+MXayvt5affGvHj/KuhlVBXHnUgSvEgFpuhK9elsds2iRho8mp1d0iHEIMp
|
||||
9LHVftsIpUxbKt/Pa/JL7oG9LBIvPj/SIjsCAwEAATANBgkqhkiG9w0BAQsFAAOC
|
||||
AQEAjPAtZs1by2h/1fr/ypojw16llzbReT8J+T8YHSTf6YwjoE83I0QDOLEo1ax+
|
||||
e/8qyQLs0EnlfdomNyA4Z/ECbY5c1nY0Dp//u6WH7AwLUx5HiwUw4Fmxu9Q/oB1o
|
||||
3vhIPl5Vd/VpdxDzuO8q8WvagwjVaxsZP3PVaBDRzZZPldPgTakfk+w5XnjNfgJi
|
||||
RDRutTRe6KBOxt7PAzAVV71FtOIq0b4xCNJGNurYBhRgZ5iQ7yMw+I5Vte1TakWr
|
||||
9gfE/yoKbU1W+y0QxSDTsnTCO4i3mXmBTuceTVWELwqZcr34W7n3vD8UtZQfanML
|
||||
cHCZaLPSMDuDtS74FSamP3i+oQ==
|
||||
-----END CERTIFICATE-----
|
||||
17
tests/mutual-auth/certs/server/server.crt.2
Normal file
17
tests/mutual-auth/certs/server/server.crt.2
Normal file
@@ -0,0 +1,17 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICrzCCAZcCFGMKRtmMLuut+sxC+TbWQfum7oXZMA0GCSqGSIb3DQEBCwUAMBQx
|
||||
EjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0yMzA1MDYxMTA2MjNaFw0zMzA1MDMxMTA2
|
||||
MjNaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||
ADCCAQoCggEBAKazNKPaH8LDzcaZRvBLrDNJkL1pukmB36mbczj07hZVbPmS/hyB
|
||||
vAdBFom0ZTw5dIpsUtRSZbDPrsCVpdY9O1jxwhrDi6mfvyJtKLEbTW4PvARqWwDh
|
||||
pa2SYwBMI+0ilXWTAzwJuWT1NhuUsAcB6SGwkNm3iKqZUDxn3V2L2AHRcKEJ9Zn9
|
||||
ePP4BsvtAS8ZBLxTnoo7R2SHiWwjDwuTtS4fQ5bWzGkmdmeuJ7JJt4ZzQV+mMBqr
|
||||
K3XVi+MXayvt5affGvHj/KuhlVBXHnUgSvEgFpuhK9elsds2iRho8mp1d0iHEIMp
|
||||
9LHVftsIpUxbKt/Pa/JL7oG9LBIvPj/SIjsCAwEAATANBgkqhkiG9w0BAQsFAAOC
|
||||
AQEAjPAtZs1by2h/1fr/ypojw16llzbReT8J+T8YHSTf6YwjoE83I0QDOLEo1ax+
|
||||
e/8qyQLs0EnlfdomNyA4Z/ECbY5c1nY0Dp//u6WH7AwLUx5HiwUw4Fmxu9Q/oB1o
|
||||
3vhIPl5Vd/VpdxDzuO8q8WvagwjVaxsZP3PVaBDRzZZPldPgTakfk+w5XnjNfgJi
|
||||
RDRutTRe6KBOxt7PAzAVV71FtOIq0b4xCNJGNurYBhRgZ5iQ7yMw+I5Vte1TakWr
|
||||
9gfE/yoKbU1W+y0QxSDTsnTCO4i3mXmBTuceTVWELwqZcr34W7n3vD8UtZQfanML
|
||||
cHCZaLPSMDuDtS74FSamP3i+oQ==
|
||||
-----END CERTIFICATE-----
|
||||
28
tests/mutual-auth/certs/server/server.key
Normal file
28
tests/mutual-auth/certs/server/server.key
Normal file
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmszSj2h/Cw83G
|
||||
mUbwS6wzSZC9abpJgd+pm3M49O4WVWz5kv4cgbwHQRaJtGU8OXSKbFLUUmWwz67A
|
||||
laXWPTtY8cIaw4upn78ibSixG01uD7wEalsA4aWtkmMATCPtIpV1kwM8Cblk9TYb
|
||||
lLAHAekhsJDZt4iqmVA8Z91di9gB0XChCfWZ/Xjz+AbL7QEvGQS8U56KO0dkh4ls
|
||||
Iw8Lk7UuH0OW1sxpJnZnrieySbeGc0FfpjAaqyt11YvjF2sr7eWn3xrx4/yroZVQ
|
||||
Vx51IErxIBaboSvXpbHbNokYaPJqdXdIhxCDKfSx1X7bCKVMWyrfz2vyS+6BvSwS
|
||||
Lz4/0iI7AgMBAAECggEAKvz2u7Rh0WOWGrtnQEt7bkRv13C+8frUd1QXnB4JkefY
|
||||
sOmXrzlDiGlgCwXiv2ufopy5pXhUMgr0qUROHlfvCIpbwHQh/Y2tCA83WajNSG81
|
||||
ULwumKUYCRFBh4+bCimLemT9hguJ7D+SAv3OgRgciywRxpteWoQr3U/5lYidHSZ/
|
||||
gv13lVKbn72zD5opeGA2hS1MlLZV/xueSvhT3lzbv61hqdersACj2Tvi8O2/imVy
|
||||
XjEZnPRQhlFPtiAN5J3on6Xo+MqieuhA3yxhBrYoLsMrTCK6ePThdXfcgmpEjQ8l
|
||||
6HxNmnPri5KbxCTbGgCjMiSidnRim2IpBMEP32eN8QKBgQDLr2CoMdyliFU6Gm1P
|
||||
rxWTMnvzdVbXUp4B8YEdyNyKdWt50cqbB3UvnFX2gpELYdy3uYcXTKm+Nynruam1
|
||||
Z/Ya1HXwN+wdgQhjq9n4izLvEfUkXWDNNikQmts8Uxkp+uEK+OOp1/NjZlA6YdS3
|
||||
crq5wPxLoAP2JxiaoIJF74QMqwKBgQDRhABgZbWVHwPcLVVqZ5+MJYvQORqIqapf
|
||||
kGe/jR/CMC0Tkop2O1tY3f68bMNKkXfj7QEtDlppMswZ9MOqBBr56yGZzrQa+cB3
|
||||
lF4+hP06OvyIkdmZlP4NHm/DtF9gt1KjWPF2VcIfD3VfZO8E/XJn2n1KnKCU+4cb
|
||||
lyJYi9AgsQKBgQCWkgPy8kE5QSo3tJeAI17gnJ5SoDhdHp7dsukO2pBl7l1QBY0v
|
||||
w3iWhIxrmaOddW+ThZve1nZYvjDIKEzTZJHizZKNzNlICj3oaH7OpCA36N9+TWUk
|
||||
7le3BbLxykA870/zK4Ao6xHqNhUyw2VbY32zmX0obpbfHZGrpOIIzwGf1wKBgDlM
|
||||
U1oJls5QbBrT3w85hZ2rSwBIDaSgWfLGqEjvjGbsC/fVVL6e3w1/sMHRMNt8yv/v
|
||||
einbSgiJFt5mXPhrJQGCN28742+ZK/TIA7ovXp2FMjkbQhpJb+0gjMpF0uu9VwFL
|
||||
OsX1ECC0dpH/JYsE0TvrueYkzZnQ7BM0kvUKT4IRAoGAOPVed0zkDh3iobQ3A3IG
|
||||
JepRygabC68iOHlrD6sVxST0HdyP9pxwMe9gnz5TDAZkWvhJV0UUmaMCpbShsc+n
|
||||
ymKSNnXAxt+G6XHH3Mg9aDNi70og4HhhT6dU2579xUOBY2057ZgpWXK3rf+JKls4
|
||||
XlkplyHw0UqkEhCw+FMa3Gs=
|
||||
-----END PRIVATE KEY-----
|
||||
31
tests/mutual-auth/gen-certs.sh
Executable file
31
tests/mutual-auth/gen-certs.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Create server and client certificate directories
|
||||
mkdir -p certs/server
|
||||
mkdir -p certs/client
|
||||
|
||||
# Generate server key
|
||||
openssl genrsa -out certs/server/server.key 2048
|
||||
|
||||
# Generate a Certificate Signing Request (CSR) for the server key
|
||||
openssl req -new -key certs/server/server.key -out certs/server/server.csr -subj "/CN=localhost"
|
||||
|
||||
# Self-sign the server CSR to create the server certificate
|
||||
openssl x509 -req -in certs/server/server.csr -signkey certs/server/server.key -out certs/server/server.crt -days 3650
|
||||
|
||||
# Generate server-side Certificate Authority (CA) file
|
||||
openssl req -x509 -nodes -new -key certs/server/server.key -sha256 -days 3650 -out certs/server/ca.crt -subj "/CN=ServerCA"
|
||||
|
||||
# Generate client key
|
||||
openssl genrsa -out certs/client/client.key 2048
|
||||
|
||||
# Generate a Certificate Signing Request (CSR) for the client key
|
||||
openssl req -new -key certs/client/client.key -out certs/client/client.csr -subj "/CN=Client"
|
||||
|
||||
# Sign the client CSR with the server CA to create the client certificate
|
||||
openssl x509 -req -in certs/client/client.csr -CA certs/server/ca.crt -CAkey certs/server/server.key -CAcreateserial -out certs/client/client.crt -days 365
|
||||
|
||||
# Cleanup
|
||||
rm -f certs/server/server.csr
|
||||
rm -f certs/client/client.csr
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEEzCCAvsCFBZ5XADLte+8KNDUrOSVlYr8EHIRMA0GCSqGSIb3DQEBCwUAMEUx
|
||||
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
|
||||
cm5ldCBXaWRnaXRzIFB0eSBMdGQwIBcNMjMwNTAyMTA0NzUyWhgPMjA1MDA5MTYx
|
||||
MDQ3NTJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
|
||||
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEBAQUA
|
||||
A4ICDwAwggIKAoICAQDDId1K+ZtHmZr4+dn5ClZjY2S+2sIoP8vEdClCyLqpTbpZ
|
||||
bnZEr9zOGvBHHqhE9umS6cCglUY1BQ4t0xkuaHtggEqHZGHWGeuCqwTnWZ+oT6Ht
|
||||
U85GUrmdkQg2IsvBYsaJVbw8czfyalPCEf9/U8kZAfnHIdIf9HJoe4/JzvBL44ws
|
||||
20wNMJqZL4sicqjxPsZSoUgV8KMrOgUt/0OjpnpQdUElqv5H/cQVrwotqbU17hn9
|
||||
xRuys0Ffjn+uaSrmybVuD1cVcl6AD3k5cMArqrYeY/0FfmAszT/Tj+5abjAjcNSj
|
||||
uiOPTdy7JUT2QeoStCN4NYjemeFaTYTB6GaxfcDreGd0KR17wOttCzWMdKdd1IcF
|
||||
B0/R2x6CvAS/ySrEHN9KiW6y5Qc9KARBrKPciaxC95Ppe1xsK0gb3qCfMIDCo5Lr
|
||||
GbmpAUtpoT99ehrLlfIeBcHaHxvA2LNrot1Cgwe+dORy1vd7UMFBqMzC3DuARlzo
|
||||
h+dAMvPeVGKoafzz04DqNvgENso/v/aJ7Ull2hVgt0TLJOC4fA2alHTksflXs5yL
|
||||
zIk6BsIZ4vAJvO4uoGy0FGx4E0FiL8aroZOcaFYnyQxUbjT0MFK6nxPUsNpbFCMc
|
||||
1UMPNoMpKm8NfnMUxPLDU46aqLSdtxk8yYwa80Ju0tMLRYh1zV8EquEvj6qUBwID
|
||||
AQABMA0GCSqGSIb3DQEBCwUAA4IBAQBVvYDjooL41GhlyUVDYox0bR8WTLx8XxKG
|
||||
p0ByZ6j92DwKJXk6mHd85lZuHDq7hRF4g5gxdbmG847/Iqh4VPR6iQmtq7ROXwBU
|
||||
+kGBvRIHngilobn6TYHCKdiaWxIPJuth/ws/92JGxkBGqJtphcOwlOIEuh+5rIU8
|
||||
zZfLlJItICsZ4MMNpOhHJRKtTiltPorQnj/IiGnTRXa3jZapwPv70XdtgiOUCTeV
|
||||
scyOca3K3Xn84RQypLbPf2wZx8/rEi3F9+ppTXwSiA6PstkAK3nuZJZWKTUIVVRo
|
||||
6WAlycUHFbJhSJyk1BBUIw4ySUvjcwF3uFCQavIt+6RaPkKzV3qu
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1,24 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEEzCCAvsCFBZ5XADLte+8KNDUrOSVlYr8EHIRMA0GCSqGSIb3DQEBCwUAMEUx
|
||||
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
|
||||
cm5ldCBXaWRnaXRzIFB0eSBMdGQwIBcNMjMwNTAyMTA0NzUyWhgPMjA1MDA5MTYx
|
||||
MDQ3NTJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
|
||||
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEBAQUA
|
||||
A4ICDwAwggIKAoICAQDDId1K+ZtHmZr4+dn5ClZjY2S+2sIoP8vEdClCyLqpTbpZ
|
||||
bnZEr9zOGvBHHqhE9umS6cCglUY1BQ4t0xkuaHtggEqHZGHWGeuCqwTnWZ+oT6Ht
|
||||
U85GUrmdkQg2IsvBYsaJVbw8czfyalPCEf9/U8kZAfnHIdIf9HJoe4/JzvBL44ws
|
||||
20wNMJqZL4sicqjxPsZSoUgV8KMrOgUt/0OjpnpQdUElqv5H/cQVrwotqbU17hn9
|
||||
xRuys0Ffjn+uaSrmybVuD1cVcl6AD3k5cMArqrYeY/0FfmAszT/Tj+5abjAjcNSj
|
||||
uiOPTdy7JUT2QeoStCN4NYjemeFaTYTB6GaxfcDreGd0KR17wOttCzWMdKdd1IcF
|
||||
B0/R2x6CvAS/ySrEHN9KiW6y5Qc9KARBrKPciaxC95Ppe1xsK0gb3qCfMIDCo5Lr
|
||||
GbmpAUtpoT99ehrLlfIeBcHaHxvA2LNrot1Cgwe+dORy1vd7UMFBqMzC3DuARlzo
|
||||
h+dAMvPeVGKoafzz04DqNvgENso/v/aJ7Ull2hVgt0TLJOC4fA2alHTksflXs5yL
|
||||
zIk6BsIZ4vAJvO4uoGy0FGx4E0FiL8aroZOcaFYnyQxUbjT0MFK6nxPUsNpbFCMc
|
||||
1UMPNoMpKm8NfnMUxPLDU46aqLSdtxk8yYwa80Ju0tMLRYh1zV8EquEvj6qUBwID
|
||||
AQABMA0GCSqGSIb3DQEBCwUAA4IBAQBVvYDjooL41GhlyUVDYox0bR8WTLx8XxKG
|
||||
p0ByZ6j92DwKJXk6mHd85lZuHDq7hRF4g5gxdbmG847/Iqh4VPR6iQmtq7ROXwBU
|
||||
+kGBvRIHngilobn6TYHCKdiaWxIPJuth/ws/92JGxkBGqJtphcOwlOIEuh+5rIU8
|
||||
zZfLlJItICsZ4MMNpOhHJRKtTiltPorQnj/IiGnTRXa3jZapwPv70XdtgiOUCTeV
|
||||
scyOca3K3Xn84RQypLbPf2wZx8/rEi3F9+ppTXwSiA6PstkAK3nuZJZWKTUIVVRo
|
||||
6WAlycUHFbJhSJyk1BBUIw4ySUvjcwF3uFCQavIt+6RaPkKzV3qu
|
||||
-----END CERTIFICATE-----
|
||||
@@ -670,8 +670,8 @@ fn banner_prints_server_certs() {
|
||||
.arg("--url")
|
||||
.arg("http://localhost")
|
||||
.arg("--server-certs")
|
||||
.arg("tests/server-test-cert-1.pem")
|
||||
.arg("tests/server-test-cert-2.pem")
|
||||
.arg("tests/mutual-auth/certs/server/server.crt.1")
|
||||
.arg("tests/mutual-auth/certs/server/server.crt.2")
|
||||
.arg("--wordlist")
|
||||
.arg("/definitely/doesnt/exist/0cd7fed0-47f4-4b18-a1b0-ac39708c1676")
|
||||
.assert()
|
||||
@@ -686,8 +686,8 @@ fn banner_prints_server_certs() {
|
||||
.and(predicate::str::contains("Timeout (secs)"))
|
||||
.and(predicate::str::contains("User-Agent"))
|
||||
.and(predicate::str::contains("Server Certificates"))
|
||||
.and(predicate::str::contains("server-test-cert-1.pem"))
|
||||
.and(predicate::str::contains("server-test-cert-2.pem"))
|
||||
.and(predicate::str::contains("server.crt.1"))
|
||||
.and(predicate::str::contains("server.crt.2"))
|
||||
.and(predicate::str::contains("─┴─")),
|
||||
);
|
||||
}
|
||||
@@ -701,9 +701,9 @@ fn banner_prints_client_cert_and_key() {
|
||||
.arg("--url")
|
||||
.arg("http://localhost")
|
||||
.arg("--client-cert")
|
||||
.arg("tests/client-test-cert.pem")
|
||||
.arg("tests/mutual-auth/certs/client/client.crt")
|
||||
.arg("--client-key")
|
||||
.arg("tests/client-test-key.pem")
|
||||
.arg("tests/mutual-auth/certs/client/client.key")
|
||||
.arg("--wordlist")
|
||||
.arg("/definitely/doesnt/exist/0cd7fed0-47f4-4b18-a1b0-ac39708c1676")
|
||||
.assert()
|
||||
@@ -719,8 +719,8 @@ fn banner_prints_client_cert_and_key() {
|
||||
.and(predicate::str::contains("User-Agent"))
|
||||
.and(predicate::str::contains("Client Certificate"))
|
||||
.and(predicate::str::contains("Client Key"))
|
||||
.and(predicate::str::contains("client-test-cert.pem"))
|
||||
.and(predicate::str::contains("client-test-key.pem"))
|
||||
.and(predicate::str::contains("certs/client/client.crt"))
|
||||
.and(predicate::str::contains("certs/client/client.key"))
|
||||
.and(predicate::str::contains("─┴─")),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user