Commit Graph

3579 Commits

Author SHA1 Message Date
Dirk Wetter
4fcfb5d8f8 avoid external pwd
.. as it may not be everywhere available, see #1521 (NixOS).

This commit replaces it by `pwd -P` (-P -> no symbolic link)
2020-03-03 12:30:12 +01:00
Dirk Wetter
4dbd9a98ba
Merge pull request #1511 from drwetter/rDNS_fixes3
Fix for non compliant DNS PTR records (backport)
2020-02-15 15:23:07 +01:00
Dirk
bc9cf9f428 Fix for non compliant DNS PTR records
This commit addresses two bugs: #1506 and #1508.

First, the variable rDNS can contain multiple lines due to multiple PTR DNS
records, though this is not recommended.  In those cases the multiple PTR DNS
were concatenated on the screen, without any blank.

Secondly - depending on the name server entries and on the output of the DNS
binaries used it can contain non-printable characters or characters which are
printable but later on interpreted on the output device (\032 was mentioned
in #1506) which on the screen was interpreted as octal 32 (decimal 26 = ▒,
try echo "\032"), so basically a terminal escape sequence was smuggled
from the DNS server to the screen of the users. In JSON pretty output we
had also this escape sequence which was fine for jsonlint but caused jq
to hiccup.

Fix: we use a loop to check for each FQDN returned. There we remove chars which
under those circumstances can show up. The blacklist is taken from RFC 1912
("Allowable characters in a label for a host name are only ASCII, letters, digits,
and the `-' character").
2020-02-15 13:56:25 +01:00
Dirk Wetter
7d38f3c365
Merge pull request #1494 from dcooper16/fix_typos_3.0
Fix typos
2020-02-04 17:56:58 +01:00
David Cooper
8c29891ec8
Fix typos
Same as #1492, but for 3.0.
2020-02-04 11:35:14 -05:00
Dirk Wetter
20daaa667c
Merge pull request #1493 from drwetter/dotasurl_fix_3.0
Fix URL when hostname with trailing dot supplied
2020-02-04 17:17:57 +01:00
Dirk Wetter
f11b9023d6 Fix URL when hostname with trailing dot supplied
Hostnames can contain a trailing dot (and sometimes they should).
If they are supplied to testssl.sh however they will be also interpreted
as a URL PATH when the servive is HTTP.

This commit fixes that.

See also #1490
2020-02-04 16:32:34 +01:00
Dirk Wetter
0252316637
Merge pull request #1485 from drwetter/fix_ids_friendly
Fix --ids-friendly
2020-01-31 08:46:37 +01:00
Dirk Wetter
c4920f61e4 rename query_globals() --> count_do_variables()
.. and fix one problem instroduced with last patch (testssl.sh
din't work correclty if only an URI was supplied)
2020-01-30 22:25:10 +01:00
Dirk Wetter
073d383f76 Fix switch --ids-friendly
This switch had no effect. There was probably a regression
problem as it worked before.

Besides fixing that the large case statement in parse_cmd_line()
was simplified, in a sense that banner and help functions were
moved to a separate case statement.
2020-01-30 21:49:56 +01:00
Dirk Wetter
b0b084dcda
Merge pull request #1442 from drwetter/bump_version
bump version to final
2020-01-23 18:08:23 +01:00
Dirk Wetter
a11a060acb
Merge pull request #1456 from drwetter/changes_etc
Update attributions and changes for release
2020-01-23 18:05:50 +01:00
Dirk Wetter
a9e5bcc30c
Merge pull request #1470 from drwetter/1xmsg_squash
Squash the last futile -msg for $OPENSSL
2020-01-23 11:03:46 +01:00
Dirk
ace4098693 Squash the last futile -msg for $OPENSSL
... see also https://github.com/drwetter/testssl.sh/pull/1468#discussion_r369786007
2020-01-23 09:46:33 +01:00
Dirk Wetter
631755ceb1
Merge pull request #1464 from drwetter/further_handshakes
Further handshakes / minor changes
2020-01-22 22:30:16 +01:00
Dirk Wetter
fa4f1e4366
Merge pull request #1468 from nosnilmot/fix-xmpp-starttls
Fix XMPP starttls
2020-01-22 21:09:51 +01:00
Dirk
5083e950d2 Move debugging remainders detection to t/00_testssl_help.t 2020-01-22 21:04:23 +01:00
Dirk Wetter
ec722e0e9c
Merge pull request #1469 from dcooper16/simplify_draft_tls13_version_determination
Simplify code to determine draft TLS 1.3 version
2020-01-22 20:39:10 +01:00
Dirk Wetter
f7ab5a0821
Move quotes...
as David suggested.
2020-01-22 20:34:00 +01:00
David Cooper
43d83b27d4
Simplify code to determine draft TLS 1.3 version
This PR simplifies the code for determining which draft version of TLS 1.3 a server is offering by making use of a simple regular expression and $BASH_REMATCH rather than looping through every possible draft version.
2020-01-22 13:48:27 -05:00
Stu Tomlinson
0deea8000c Fix XMPP starttls
'-xmpphost' option required in combination with '-starttls xmpp' was missing
in determine_optimal_proto()

Also tweaked a couple of log messages
2020-01-22 18:10:58 +00:00
Dirk Wetter
7619e430f2
Merge pull request #1466 from dcooper16/fix_run_ssl_poodle
Fix run_ssl_poodle()
2020-01-22 18:05:08 +01:00
Dirk Wetter
2602e14191
Merge pull request #1465 from dcooper16/undo_copy_paste_error
Undo copy and paste error
2020-01-22 17:25:33 +01:00
David Cooper
cce57c4613
Fix run_ssl_poodle()
PR #1463 changed run_ssl_poodle() to only run the test if it is known that the server supports SSLv3. However, support for SSLv3 may be unknown at the time run_ssl_poodle() is run (e.g., if the server supports TLS 1 and SSLv3, and run_ssl_poodle() is the first test performed). So, run_ssl_poodle() should perform testing unless it is known that SSLv3 is not supported.
2020-01-22 11:20:34 -05:00
David Cooper
d49d96ae40
Undo copy and paste error
This PR removes what appears to be a copy and paste error introduced by #1463.
2020-01-22 11:14:55 -05:00
Dirk Wetter
2181061c6e
Merge pull request #1463 from drwetter/shortcurt_vulns
Shortcuts for vulnerability tests for TLS 1.3 only servers
2020-01-22 15:37:11 +01:00
Dirk Wetter
eeb1acd749 Android 9 still has 2 signature hash algos: x0201 + x0203 2020-01-22 11:41:42 +01:00
Dirk
d4d5a61a0b Hopefully make Travis shut up now
picked a TLS 1.2 host
2020-01-22 11:30:21 +01:00
Dirk
cae052cfab Address some HTML check failures in travis
(shouldn't work too late)
2020-01-22 11:29:04 +01:00
Dirk Wetter
7c66ed47c0 All self retrieved Android handshakes modified to service ANY 2020-01-22 10:58:00 +01:00
Dirk Wetter
a50a660d6c Add Android 10 client simulation 2020-01-22 10:54:50 +01:00
Dirk Wetter
ca8054184b remove also leading colon in helper script bc of GREASE 2020-01-22 10:52:07 +01:00
Dirk
39abb27dd9 cloudflare seems not good for html travis checks 2020-01-22 00:28:59 +01:00
Dirk
80530aa34c remove fast as it makes problems especially with Travis+testssl.net 2020-01-21 23:53:52 +01:00
Dirk
e0f8c8d43e Relax misunderstanding of DEBUG statemement
There's a check for >825 days certificate lifetime. That
check emits a debug statement when the lifetime is within
this limit. It does that also when the certificate expired.

This commit adds now the word "total"

DEBUG: all is fine with total certificate life time

to make sure the life time left not is what should be understood.
2020-01-21 22:47:53 +01:00
Dirk
26a8f23ec1 Shutup Travis
... by adding the formerly intruoced "DEBUG" statement as a filter.
Note: "DEBUG" can now / should now be taken preferably for extra
output on debug level 1.

Replacing badssl.com by testssl.net. The former needed almost 5 min
for a run, whereas one IP of testssl.net needs ~80 secs. With --fast
even less.
2020-01-21 22:41:50 +01:00
Dirk
952231dd94 Shortcuts for vulnerability tests
Several vulnerability checks add a time penalty when the server
side only support TLS 1.3 as The TLS 1.3 RFC 8446 and implementations
known so far don't support the flaws being checked for.

This PR adds "shortcut" checks for all TLS 1.3, assuming that the
TLS 1.3 implementation is correct which seems at this time a valid
assumpution. That either saves a TCP connect or at least some logic to
be executed.  Also in some cases a TLS 1.3 only server emitted unnecessary
warnings, see #1444.

If $DEBUG -eq 1 then it outputs information that a shortcut was
used. It doesn't do that in other cases because the screen output
seems too obtrusive.

It also adds a shortcut for beast when SSL 3 or TLS 1.0 is is known
not to be supported.

This commit radds 747fb039ed which
was accidenially reverted in 45f28d8166.
It fixes #1462.

See also #1459.
2020-01-20 21:37:02 +01:00
Dirk
431f4fbe5f last walk through the changelog 2020-01-20 12:50:31 +01:00
Dirk
3e8d1983b3 reorder / rephrase some points 2020-01-20 12:49:49 +01:00
Dirk Wetter
c08250d1bb
Merge pull request #1461 from drwetter/ci_setx
add check for forgotten "set -x" + provide defined start conditions
2020-01-20 12:20:07 +01:00
Dirk
45f28d8166 Revert "Shortcuts for TLS13 only servers in renegotiation checks"
This reverts commit 747fb039ed.
2020-01-18 21:55:35 +01:00
Dirk
44d1139e99 Revert "Complete shortcut checks (Renegotiation and CRIME)"
This reverts commit 8c24d1a6f2.
2020-01-18 21:54:42 +01:00
Dirk
f109d3bbd6 add unlink / start with a clean state
... good when running "prove -v" locally and previously
the run was interrrupted by e.g. ^C
2020-01-18 21:47:44 +01:00
Dirk
cb6677e2d3 removed comment 2020-01-18 21:45:32 +01:00
Dirk
bec9ebdda8 only one ip 2020-01-18 21:44:24 +01:00
Dirk
2563dfb5e5 add set -x 2020-01-18 21:36:19 +01:00
Dirk
8c24d1a6f2 Complete shortcut checks (Renegotiation and CRIME)
This also makes a short exit when the server side
supports TLS 1.3 only as this protocol doesn't support
TLS renegotiation or compression.

Also it fixes the logic flaw from the previous
commit that "-no_tls1_3" has to be supplied.

Furthermore, it unifies the output presented to the user.
2020-01-18 12:31:38 +01:00
Dirk Wetter
155824214b
Merge pull request #1460 from drwetter/drwetter-patch-1
add also here -z
2020-01-17 15:26:09 +01:00
Dirk Wetter
adfa411e24
add also here -z 2020-01-17 15:24:36 +01:00
Dirk
747fb039ed Shortcuts for TLS13 only servers in renegotiation checks
As noted in #1444 a few vulnerability checks don't make sense
or aren't working.  This commit addresses the renegotiation checks.

Also a few redundant quotes in parse_tls_serverhello() and
run_crime() were removed.
2020-01-17 15:16:26 +01:00