0
我正在爲我正在處理的網站做一些漏洞測試。在測試過程中,我發現該網站存在問題。我創建了一個小型Web表單,將數據提交到其他Web表單並運行一些JavaScript。小網站可以在下方查看:在Viewstate中用XSS捍衛CSRF
<form name="aspnetForm" method="post" action="https://[URL]" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">
<type="hidden" select name="ctl00$ContentPlaceHolder1$ddlCategory" id="ctl00_ContentPlaceHolder1_ddlCategory">
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="</span><script>alert(1);</script><span>" />
</div>
<input type="submit" name="ctl00$ContentPlaceHolder1$btnSubmit" value="Submit" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$btnSubmit", "", true, "", "", false, false))" id="ctl00_ContentPlaceHolder1_btnSubmit" />
</form>
當我運行點擊提交這種形式我得到的網頁說明上的錯誤按鈕: 「無效的視圖狀態」,但在視圖狀態的JavaScript是否還在執行。
默認情況下,EnableEventValidation設置爲true,並且而不是被web.config或頁面覆蓋。我如何強制viewstate被驗證,但不執行JavaScript?
嗯......是'RequestValidation'關閉了嗎? – EdSF 2014-09-03 15:48:57
它沒有在頁面或web.config中修改,默認情況下它應該設置爲true。 – jbeverid 2014-09-03 16:08:55