2013-04-02 77 views
1

我明白偷用XSS在信息的場景信息的場景GET後如下流程:什麼是偷用XSS的POST請求

  1. 黑客有漏洞的Web應用程序標識頁通過查詢字符串參數注入XSS。
  2. 黑客使用XSS注入查詢字符串組成URL。
  3. 黑客將該網址發送給受害者,例如通過電子郵件。
  4. 受害者收到郵件並點擊URL(假設受害者對安全知識較少)。
  5. 打開的網頁已注入XSS,頁面上的任何進一步操作都可能導致安全問題。

這是可能的,因爲點擊url鏈接將以GET模式打開網頁。所以,我想知道如果頁面是XSS脆弱的POST請求,它會是一個安全問題?我找不出一個「合理」的攻擊工作流程。

回答

5

所以,我想知道如果頁面是XSS脆弱的POST請求,它會是一個安全問題?

當然,這將是。爲什麼方法通過哪個外部代碼嵌入問題呢? 它發生的問題,而不是如何

我無法想出一個「合理」的攻擊流程。

考慮一個簡單的HTML表單,它在服務器端驗證失敗後預先填充上一個用戶輸入。

如果這個pre-popuplating允許XSS(基本上是指在HTML輸出之前轉義所有數據被忽略) - 那麼我可以在我自己的頁面中輕鬆地創建一個表單,讓它的action屬性指向您的表單處理地址,並通過隱藏字段傳遞我喜歡的任何數據 - 並且必須通過簡單的提交按鈕將用戶的數據發送到您的服務器,這可能是格式化的,看起來就像一個正常的鏈接,只說「點擊此處前往example.com」。用戶希望只是「正常」打開一個頁面,就像其他任何鏈接一樣 - 但實際上它發送的值會觸發再次顯示帶有預填充字段的表單。

的Et瞧,XSS攻擊成功執行。

(所有這一切的前提是目標網站沒有針對到位「洋」形式的數據額外的安全性下。)

+1

感謝您的快速回答!我的意思是起始頁面是一個只接受POST請求的頁面,比如說my_post_request.aspx。根據我的理解,我需要準備一個嵌入了XSS字符串的完整發布請求並將其發送到服務器,然後服務器響應我一個包含XSS操作的頁面,其中存在安全問題。但我不明白這是怎麼發生的,因爲如果我向其他人發送頁面URL(my_post_request.aspx),而其他人的點擊操作是GET操作而不是所需的POST操作。 – Shuping

+1

XSS不僅僅是向另一個人發送一個URL--就像我在我的例子中所說的那樣,我可以使用數據的隱藏字段在我自己的頁面中構建一個僞造的表單,並且您可以通過一個帶有誤導性描述的按鈕來提交該表單。 – CBroe

+1

好的,那麼我明白我也應該處理POST請求的安全問題。 – Shuping

2

攻擊者還可以建立一個 '數據:' URL包含自動提交形式:

數據:text/html的; BASE64,PGh0bWw + CiAgPGJvZHkgb25sb2FkPSJkb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKSI + CiAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iaHR0cDovL2xvY2FsaG9zdCI + CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVybnN0IiB2YWx1ZT0iPHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4iPgogICAgPC9mb3JtPgo8L2h0bWw +

其等同於導航到包含此標記的頁面:

<html> <體的onload = " document.forms [0] .submit()" > <形式方法= "交"行動= " ... " > <輸入類型= "隱藏"名稱= "恩斯特"值= " <腳本>警報( 'XSS')< /腳本> " > < /形式> </HTML >

+0

感謝您的回答!你能分享我更多的信息什麼是數據網址?我不知道這一點?任何參考? – Shuping

+0

當然,對不起,http://en.wikipedia.org/wiki/Data_Url –

+0

太好了,謝謝!我學到了更多。 – Shuping

0

剛剛完成針對客戶的滲透測試時遇到了這個確切問題。在報告時,我們通常會嘗試使用GET請求來展示概念漏洞的證明,因爲這更容易。請記住,有些服務器可能允許您將POST更改爲GET請求。某些服務器也將接受URL中的POST參數值。在我最近的經驗中,服務器只接受一個請求作爲一個POST,輸入輸入到表單域。阻止XSS攻擊的唯一原因是他們已經通過ViewState進行了跨站點請求僞造防護。所以,在這種情況下,這只是一個反映錯誤。仍然不好,但並不壞。您應始終使用入口和出口過濾,並且絕不信任用戶可控數據。

相關問題