Skip to content

Commit 8686a4b

Browse files
Flowise UI detector
1 parent 6bc363e commit 8686a4b

10 files changed

Lines changed: 743 additions & 0 deletions

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Flowise UI Exposed Detector
2+
3+
This Tsunami plugin detects exposed Flowise UI instances. Flowise is a drag & drop UI tool for building LLM applications. When exposed without proper authentication, it could lead to unauthorized access and potential security risks.
4+
5+
## Description
6+
7+
The detector performs the following checks:
8+
- Attempts to access the Flowise UI endpoint
9+
- Verifies if the API interface is accessible without authentication
10+
11+
## Build jar file for this plugin
12+
13+
Using `gradlew`:
14+
15+
```shell
16+
./gradlew jar
17+
```
18+
19+
Tsunami identifiable jar file is located at `build/libs` directory.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
plugins {
2+
id 'java-library'
3+
}
4+
5+
description = 'Tsunami Flowise UI exposed VulnDetector plugin.'
6+
group = 'com.google.tsunami'
7+
version = '0.0.1-SNAPSHOT'
8+
9+
repositories {
10+
maven { // The google mirror is less flaky than mavenCentral()
11+
url 'https://maven-central.storage-download.googleapis.com/repos/central/data/'
12+
}
13+
mavenCentral()
14+
mavenLocal()
15+
}
16+
17+
java {
18+
sourceCompatibility = JavaVersion.VERSION_11
19+
targetCompatibility = JavaVersion.VERSION_11
20+
21+
jar.manifest {
22+
attributes('Implementation-Title': name,
23+
'Implementation-Version': version,
24+
'Built-By': System.getProperty('user.name'),
25+
'Built-JDK': System.getProperty('java.version'),
26+
'Source-Compatibility': sourceCompatibility,
27+
'Target-Compatibility': targetCompatibility)
28+
}
29+
30+
javadoc.options {
31+
encoding = 'UTF-8'
32+
use = true
33+
links 'https://docs.oracle.com/en/java/javase/11/'
34+
source = '11'
35+
}
36+
37+
// Log stacktrace to console when test fails.
38+
test {
39+
testLogging {
40+
exceptionFormat = 'full'
41+
showExceptions true
42+
showCauses true
43+
showStackTraces true
44+
}
45+
maxHeapSize = '1500m'
46+
}
47+
}
48+
49+
ext {
50+
tsunamiVersion = 'latest.release'
51+
junitVersion = '4.13.1'
52+
guiceVersion = '4.2.3'
53+
okhttpVersion = '3.12.0'
54+
truthVersion = '1.1.3'
55+
}
56+
57+
dependencies {
58+
implementation "com.google.tsunami:tsunami-common:${tsunamiVersion}"
59+
implementation "com.google.tsunami:tsunami-plugin:${tsunamiVersion}"
60+
implementation "com.google.tsunami:tsunami-proto:${tsunamiVersion}"
61+
62+
testImplementation "junit:junit:${junitVersion}"
63+
testImplementation "com.google.truth:truth:${truthVersion}"
64+
testImplementation "com.squareup.okhttp3:mockwebserver:${okhttpVersion}"
65+
}
66+
Binary file not shown.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
6+
zipStoreBase=GRADLE_USER_HOME
7+
zipStorePath=wrapper/dists

community/detectors/flowise_exposed_ui/gradlew

Lines changed: 249 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)