Hi Simon,
Thanks, that helped clarify the issue.
After further investigation, the vulnerable endpoint and several POST requests to page where XSS exists are actually being discovered by both the AJAX Spider and the traditional Spider. The Sites Tree contains multiple POST requests with the relevant parameters, including the vulnerable form fields.
• node: "POST:ConfigPhonebook.aspx()(__EVENTVALIDATION,__VIEWSTATE,__VIEWSTATEGENERATOR,ctl00$ContentPlaceHolder1$FileUpload1,ctl00$ContentPlaceHolder1$txtFind,ctl00$ContentPlaceHolder1$txtMobile,ctl00$ContentPlaceHolder1$txtUpsertComme...,ctl00$ContentPlaceHolder1$txtUpsertDirec...,ctl00$ContentPlaceHolder1$txtUpsertExten...,ctl00$ContentPlaceHolder1$txtUpsertFirst...,ctl00$ContentPlaceHolder1$txtUpsertLastN...,ctl00$ContentPlaceHolder1$txtUpsertLocat...,ctl00$ContentPlaceHolder1$txtUpsertMailb...,ctl00$ContentPlaceHolder1$txtUpsertTitle,ctl00$btnFeedbackTrigger,ctl00$ddlLanguage)"
url: .../ConfigPhonebook.aspx
method: POST
responseLength: 45608
statusCode: 200
data: __VIEWSTATE=&__VIEWSTATEGENERATOR=&__EVENTVALIDATION=&ctl00%24ddlLanguage=&ctl00%24ContentPlaceHolder1%24txtFind=&ctl00%24ContentPlaceHolder1%24txtUpsertExtension=&ctl00%24ContentPlaceHolder1%24txtUpsertDirect=&ctl00%24ContentPlaceHolder1%24txtMobile=&ctl00%24ContentPlaceHolder1%24txtUpsertFirstName=&ctl00%24ContentPlaceHolder1%24txtUpsertLastName=&ctl00%24ContentPlaceHolder1%24txtUpsertTitle=&ctl00%24ContentPlaceHolder1%24txtUpsertMailbox=&ctl00%24ContentPlaceHolder1%24txtUpsertLocation=&ctl00%24ContentPlaceHolder1%24txtUpsertComments=&ctl00%24ContentPlaceHolder1%24FileUpload1=&ctl00%24btnFeedbackTrigger=
However, I noticed that the generated requests contain empty
ASP.NET state parameters such as __VIEWSTATE, __EVENTVALIDATION, and __VIEWSTATEGENERATOR.
At this point, it seems the issue is not endpoint discovery itself, but that the Active Scan is replaying invalid or incomplete
ASP.NET WebForms requests. Because of that, the vulnerable server-side workflow likely does not execute correctly during automation, preventing the reflected XSS from being triggered automatically.
This would also explain why the XSS is detected when performing an Active Scan directly against a real POST request from the History tab after manual navigation in the UI.
In your experience, what would be the best approach to preserve valid WebForms state during automated scanning? Would this typically require a custom script / Selenium flow / authenticated request replay approach?
Thanks again