Skip to content

Commit 5c2e301

Browse files
authored
Merge pull request #568 from giper45/fix-only-custom-payloads
fix: only custom payload should not insert base xss payloads
2 parents e1269f9 + 6bf486f commit 5c2e301

2 files changed

Lines changed: 53 additions & 51 deletions

File tree

CONTRIBUTORS.svg

Lines changed: 22 additions & 22 deletions
Loading

pkg/scanning/scan.go

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -270,36 +270,38 @@ func Scan(target string, options model.Options, sid string) (model.Result, error
270270
vStatus[k] = false
271271
}
272272

273-
// set path base XSS
274-
for k, v := range options.PathReflection {
275-
if strings.Contains(v, "Injected:") {
276-
// Injected pattern
277-
injectedPoint := strings.Split(v, "/")
278-
injectedPoint = injectedPoint[1:]
279-
for _, ip := range injectedPoint {
280-
var arr []string
281-
if strings.Contains(ip, "inJS") {
282-
arr = optimization.SetPayloadValue(getInJsPayload(ip), options)
283-
}
284-
if strings.Contains(ip, "inHTML") {
285-
arr = optimization.SetPayloadValue(getHTMLPayload(ip), options)
286-
}
287-
if strings.Contains(ip, "inATTR") {
288-
arr = optimization.SetPayloadValue(getAttrPayload(ip), options)
289-
}
290-
for _, avv := range arr {
291-
var tempURL string
292-
if len(parsedURL.Path) == 0 {
293-
tempURL = target + "/" + avv
294-
} else {
295-
split := strings.Split(target, "/")
296-
split[k+3] = split[k+3] + avv
297-
tempURL = strings.Join(split, "/")
273+
// set path base XSS if only custom payload is not set
274+
if !options.OnlyCustomPayload {
275+
for k, v := range options.PathReflection {
276+
if strings.Contains(v, "Injected:") {
277+
// Injected pattern
278+
injectedPoint := strings.Split(v, "/")
279+
injectedPoint = injectedPoint[1:]
280+
for _, ip := range injectedPoint {
281+
var arr []string
282+
if strings.Contains(ip, "inJS") {
283+
arr = optimization.SetPayloadValue(getInJsPayload(ip), options)
284+
}
285+
if strings.Contains(ip, "inHTML") {
286+
arr = optimization.SetPayloadValue(getHTMLPayload(ip), options)
287+
}
288+
if strings.Contains(ip, "inATTR") {
289+
arr = optimization.SetPayloadValue(getAttrPayload(ip), options)
290+
}
291+
for _, avv := range arr {
292+
var tempURL string
293+
if len(parsedURL.Path) == 0 {
294+
tempURL = target + "/" + avv
295+
} else {
296+
split := strings.Split(target, "/")
297+
split[k+3] = split[k+3] + avv
298+
tempURL = strings.Join(split, "/")
299+
}
300+
// Add Path XSS Query
301+
tq, tm := optimization.MakeRequestQuery(tempURL, "", "", ip, "toAppend", "NaN", options)
302+
tm["payload"] = avv
303+
query[tq] = tm
298304
}
299-
// Add Path XSS Query
300-
tq, tm := optimization.MakeRequestQuery(tempURL, "", "", ip, "toAppend", "NaN", options)
301-
tm["payload"] = avv
302-
query[tq] = tm
303305
}
304306
}
305307
}

0 commit comments

Comments
 (0)