Skip to content

Commit afe24a6

Browse files
committed
Add directory listing to some JETTY servers
1 parent 686ff9a commit afe24a6

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

dd-java-agent/agent-iast/src/main/java/com/datadog/iast/sink/ApplicationModuleImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public class ApplicationModuleImpl extends SinkModuleBase implements Application
4848
"org.springframework.web.servlet.DispatcherServlet";
4949
private static final String DEFAULT_HTML_ESCAPE = "defaultHtmlEscape";
5050
private static final String LISTINGS_PATTERN = "<param-name>listings</param-name>";
51+
private static final String JETTY_LISTINGS_PATTERN = "<param-name>dirAllowed</param-name>";
5152
private static final String WEBLOGIC_LISTING_PATTERN =
5253
"<index-directory-enabled>true</index-directory-enabled>";
5354
private static final String WEBSPHERE_XMI_LISTING_PATTERN = "directoryBrowsingEnabled=\"true\"";
@@ -111,6 +112,7 @@ public class ApplicationModuleImpl extends SinkModuleBase implements Application
111112
JETTY_SPEC_APP_PATTERN,
112113
JETTY_TEST_APP_PATTERN,
113114
LISTINGS_PATTERN,
115+
JETTY_LISTINGS_PATTERN,
114116
SESSION_TIMEOUT_START_TAG,
115117
SECURITY_CONSTRAINT_START_TAG)
116118
.map(Pattern::quote)
@@ -250,6 +252,7 @@ private void checkWebXmlVulnerabilities(@Nonnull Path path, AgentSpan span) {
250252
reportAdminConsoleActive(span, JETTY_TEST_APP);
251253
break;
252254
case LISTINGS_PATTERN:
255+
case JETTY_LISTINGS_PATTERN:
253256
checkDirectoryListingLeak(webXmlContent, matcher.start(), span);
254257
break;
255258
case SESSION_TIMEOUT_START_TAG:

dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/sink/ApplicationModuleTest.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class ApplicationModuleTest extends IastModuleImplTestBase {
6565
'application/sessiontimeout/insecure' | SESSION_TIMEOUT | 'Found vulnerable timeout value: 80' | 7
6666
'application/directorylistingleak/secure' | null | null | _
6767
'application/directorylistingleak/insecure/tomcat' | DIRECTORY_LISTING_LEAK | 'Directory listings configured' | 14
68+
'application/directorylistingleak/insecure/jetty' | DIRECTORY_LISTING_LEAK | 'Directory listings configured' | 14
6869
'application/directorylistingleak/insecure/weblogic' | DIRECTORY_LISTING_LEAK | 'Directory listings configured' | 17
6970
'application/directorylistingleak/insecure/websphere/xmi' | DIRECTORY_LISTING_LEAK | 'Directory listings configured' | 1
7071
'application/directorylistingleak/insecure/websphere/xml' | DIRECTORY_LISTING_LEAK | 'Directory listings configured' | 10
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xmlns="http://java.sun.com/xml/ns/javaee"
4+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
5+
id="WebApp_ID" version="3.0">
6+
<servlet>
7+
<servlet-name>default</servlet-name>
8+
<servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
9+
<init-param>
10+
<param-name>resourceBase</param-name>
11+
<param-value>/path/to/your/static/files</param-value>
12+
</init-param>
13+
<init-param>
14+
<param-name>dirAllowed</param-name>
15+
<param-value>true</param-value>
16+
</init-param>
17+
</servlet>
18+
<servlet-mapping>
19+
<servlet-name>default</servlet-name>
20+
<url-pattern>/*</url-pattern>
21+
</servlet-mapping>
22+
</web-app>

0 commit comments

Comments
 (0)