Skip to content

Commit f40c3d4

Browse files
authored
Merge pull request #1395 from WebFuzzing/xss-option
xss option
2 parents b6e31e1 + d5633b9 commit f40c3d4

File tree

8 files changed

+15
-2
lines changed

8 files changed

+15
-2
lines changed

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/security/xss/reflected/html/XSSReflectedEMTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class XSSReflectedEMTest : SpringTestBase() {
2929
) { args: MutableList<String> ->
3030

3131
setOption(args, "security", "true")
32+
setOption(args, "xss", "true")
3233

3334

3435
val solution = initAndRun(args)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/security/xss/reflected/json/XSSReflectedJSONEMTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class XSSReflectedJSONEMTest : SpringTestBase() {
2929
) { args: MutableList<String> ->
3030

3131
setOption(args, "security", "true")
32+
setOption(args, "xss", "true")
3233

3334

3435
val solution = initAndRun(args)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/security/xss/stored/html/XSSStoredEMTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class XSSStoredEMTest : SpringTestBase() {
2929
) { args: MutableList<String> ->
3030

3131
setOption(args, "security", "true")
32+
setOption(args, "xss", "true")
3233

3334

3435
val solution = initAndRun(args)

core-tests/e2e-tests/spring/spring-rest-openapi-v3/src/test/kotlin/org/evomaster/e2etests/spring/openapi/v3/security/xss/stored/json/XSSStoredJSONEMTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class XSSStoredJSONEMTest : SpringTestBase() {
2929
) { args: MutableList<String> ->
3030

3131
setOption(args, "security", "true")
32+
setOption(args, "xss", "true")
3233

3334

3435
val solution = initAndRun(args)

core/src/main/kotlin/org/evomaster/core/EMConfig.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,10 @@ class EMConfig {
598598
throw ConfigProblemException("The use of 'ssrf' requires 'security'")
599599
}
600600

601+
if(!security && xss) {
602+
throw ConfigProblemException("The use of 'xss' requires 'security'")
603+
}
604+
601605
if (ssrf &&
602606
vulnerableInputClassificationStrategy == VulnerableInputClassificationStrategy.LLM &&
603607
!languageModelConnector) {
@@ -2597,6 +2601,10 @@ class EMConfig {
25972601
@Cfg("To apply SSRF detection as part of security testing.")
25982602
var ssrf = false
25992603

2604+
@Experimental
2605+
@Cfg("To apply XSS detection as part of security testing.")
2606+
var xss = false
2607+
26002608
@Regex(faultCodeRegex)
26012609
@Cfg("Disable oracles. Provide a comma-separated list of codes to disable. " +
26022610
"By default, all oracles are enabled."

core/src/main/kotlin/org/evomaster/core/problem/rest/service/SecurityRest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ class SecurityRest {
285285
handleNotRecognizedAuthenticated()
286286
}
287287

288-
if (!config.isEnabledFaultCategory(DefinedFaultCategory.XSS)) {
288+
if (!config.xss || !config.isEnabledFaultCategory(DefinedFaultCategory.XSS)) {
289289
LoggingUtil.uniqueUserInfo("Skipping security test for XSS as disabled in configuration")
290290
} else {
291291
handleXSSCheck()

core/src/main/kotlin/org/evomaster/core/problem/rest/service/fitness/AbstractRestFitness.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1345,7 +1345,7 @@ abstract class AbstractRestFitness : HttpWsFitness<RestIndividual>() {
13451345
actionResults: List<ActionResult>,
13461346
fv: FitnessValue
13471347
) {
1348-
if (!config.isEnabledFaultCategory(DefinedFaultCategory.XSS)) {
1348+
if(!config.xss || !config.isEnabledFaultCategory(DefinedFaultCategory.XSS)){
13491349
return
13501350
}
13511351

docs/options.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,3 +323,4 @@ There are 3 types of options:
323323
|`vulnerableInputClassificationStrategy`| __Enum__. Strategy to classify inputs for potential vulnerability classes related to an REST endpoint. *Valid values*: `MANUAL, LLM`. *Default value*: `MANUAL`.|
324324
|`wbProbabilityUseDataPool`| __Double__. Specify the probability of using the data pool when sampling test cases. This is for white-box (wb) mode. *Constraints*: `probability 0.0-1.0`. *Default value*: `0.2`.|
325325
|`writeSnapshotTestsIntervalInSeconds`| __Int__. The size (in seconds) of the interval that the snapshots will be printed, if enabled. *Default value*: `3600`.|
326+
|`xss`| __Boolean__. To apply XSS detection as part of security testing. *Default value*: `false`.|

0 commit comments

Comments
 (0)