Skip to content

Commit 348cb58

Browse files
committed
Added quick option (wip)
1 parent eb300a8 commit 348cb58

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

src/main/java/de/rub/nds/tlsscanner/constants/ScannerDetail.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,20 @@
99
*
1010
* @author robert
1111
*/
12-
public enum ScannerDetail {
13-
ALL, DETAILED, NORMAL,
12+
public enum ScannerDetail implements Comparable<ScannerDetail> {
13+
ALL(100), DETAILED(75), NORMAL(50), QUICK(25);
14+
15+
private int levelValue;
16+
17+
private ScannerDetail(int levelValue) {
18+
this.levelValue = levelValue;
19+
}
20+
21+
public int getLevelValue() {
22+
return levelValue;
23+
}
24+
25+
public boolean isGreaterEqualTo(ScannerDetail detail) {
26+
return levelValue >= detail.getLevelValue();
27+
}
1428
}

src/main/java/de/rub/nds/tlsscanner/probe/PaddingOracleProbe.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ public ProbeResult executeTest() {
9797
boolean vulnerable = false;
9898

9999
for (ProtocolVersion version : versionList) {
100-
if (vulnerable) {
101-
break;
100+
if (vulnerable && scannerConfig.getScanDetail().isGreaterEqualTo(ScannerDetail.QUICK)) {
101+
102102
}
103103
VersionSuiteListPair suitePairList = null;
104104
for (VersionSuiteListPair versionSuiteList : serverSupportedSuites) {
@@ -111,9 +111,6 @@ public ProbeResult executeTest() {
111111
continue;
112112
}
113113
for (PaddingVectorGeneratorType vectorType : vectorTypeList) {
114-
if (vulnerable) {
115-
break;
116-
}
117114
Set<CipherSuite> set = new HashSet<>(suitePairList.getCiphersuiteList());
118115
filterSuite(set);
119116
for (CipherSuite suite : set) {
@@ -125,7 +122,6 @@ public ProbeResult executeTest() {
125122
PaddingOracleTestResult result = createTestResult(version, suite, paddingOracleConfig);
126123
if (result.getVulnerable() == Boolean.TRUE) {
127124
vulnerable = true;
128-
break;
129125
}
130126
testResultList.add(result);
131127
}
@@ -170,12 +166,13 @@ public ProbeResult executeTest() {
170166
private PaddingOracleTestResult createTestResult(ProtocolVersion version, CipherSuite suite, PaddingOracleCommandConfig paddingOracleConfig) {
171167

172168
Boolean result;
173-
try {
174-
Thread.currentThread().sleep(10000);
175-
} catch (InterruptedException ex) {
176-
Logger.getLogger(PaddingOracleProbe.class.getName()).log(Level.SEVERE, null, ex);
177-
}
178169
PaddingOracleAttacker attacker = new PaddingOracleAttacker(paddingOracleConfig, scannerConfig.createConfig(), getParallelExecutor());
170+
if (scannerConfig.getScanDetail().isGreaterEqualTo(ScannerDetail.DETAILED)) {
171+
attacker.setAdditionalTimeout(1000);
172+
attacker.setIncreasingTimeout(true);
173+
} else {
174+
attacker.setAdditionalTimeout(50);
175+
}
179176
boolean hasError = false;
180177
try {
181178
result = attacker.isVulnerable();

0 commit comments

Comments
 (0)