2014-09-03 100 views
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(&quot;ctl00$ContentPlaceHolder1$btnSubmit&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_ContentPlaceHolder1_btnSubmit" /> 
</form> 

當我運行點擊提交這種形式我得到的網頁說明上的錯誤按鈕: 「無效的視圖狀態」,但在視圖狀態的JavaScript是否還在執行。

默認情況下,EnableEventValidation設置爲true,並且而不是被web.config或頁面覆蓋。我如何強制viewstate被驗證,但不執行JavaScript?

+0

嗯......是'RequestValidation'關閉了嗎? – EdSF 2014-09-03 15:48:57

+0

它沒有在頁面或web.config中修改,默認情況下它應該設置爲true。 – jbeverid 2014-09-03 16:08:55

回答

0

這個問題不是針對表單中的CSRF或XSS進行辯護。問題出在錯誤發生後,錯誤頁面打印出一個unsanitized的視圖狀態字符串。