@@ -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