2012-08-05 119 views
5

可能重複:
How to conduct buffer overflow in PHP/Python?PHP緩衝區溢出可能嗎?

我讀this tutorial,當我走進這個:

緩衝區溢出攻擊的目的溢出裏面的內存分配緩衝你的PHP應用程序,或者更嚴重的是,在Apache或底層操作系統中。請記住,您可能正在使用像PHP這樣的高級語言編寫您的Web應用程序,但在一天結束時,您將調用C(就Apache而言)來完成工作。和大多數低級語言一樣,C具有關於內存分配的嚴格規則。

什麼?我知道PHP很好地進行了錯誤檢查,所以緩衝區溢出是不可能的。我應該檢查用戶輸入的長度以避免太大的數據流量嗎? 非常感謝您

回答

8

是的,它是和在current change log出現了與之相關的15個錯誤修正:

  • 更正了BUG#61807緩衝區溢出apache_request_headers,CVE-2312至29年。
  • 修復crypt()中overlog salt的緩衝區溢出問題。 (克萊門特LECIGNE中,STA
  • 修正了#60965(上用htmlspecialchars緩衝區溢出/與$雙= FALSE)。在socket_connect
  • 固定堆棧緩衝區溢出()。(CVE-2011至1938年)由Mateusz Kocielski實測值的實體,馬立克Kroemeke和菲利普Palian。(菲利普)
  • 固定可能緩衝區溢出在mysqlnd_list_fields,mysqlnd_change_user。(安德烈)
  • 在mysqlnd處理錯誤數據包時,不動可能的緩衝區溢出。出自Stefan Esser的報道。(安德烈)
  • 固定一個可能的去激活過濾器緩衝區溢出報告人:Stefan Esser。(Pierre)
  • 修正了錯誤#42862(IMAP工具包崩潰:rfc822.c傳統例程緩衝區溢出)。 (修復CVE-2008-2829)(德米特里)
  • 修復FastCGI SAPI中可能的堆棧緩衝區溢出問題。 (Andrei Nigmatulin)
  • 修復了fnmatch(),setlocale()和glob()函數的glibc實現中緩衝區溢出的可能觸發。 Laurent Gaffie報道。
  • 修復了錯誤#42222(php_openssl_make_REQ中可能存在緩衝區溢出)。 (Pierre)
  • 修復了make_http_soap_request()中的遠程觸發緩衝區溢出問題。 (Ilia)
  • 修復了user_filter_factory_create()中的緩衝區溢出問題。 (Ilia)
  • 修復了捆綁libxmlrpc庫中的遠程觸發緩衝區溢出。 (STA)的
+0

那麼,你會檢查每個用戶輸入大小,以避免緩衝區溢出? – 2012-08-05 15:30:38

+0

@ user1294101不,我不會。如果我知道一個錯誤的擴展或代碼,我會提交錯誤報告。您應該檢查用戶輸入的大小作爲正常驗證。 – Esailija 2012-08-05 15:33:14

+0

謝謝,但爲什麼不檢查輸入大小是不安全的?什麼可以太大的投入呢? – 2012-08-05 15:38:31

2

當然,它可以發生,稱正在使用C/C++(這會是所有核心功能)實際寫入的功能時。

我相信PHP提供的那些基本函數已經檢查了緩衝區溢出等錯誤,但是在使用自定義擴展時卻無法確定。

+0

那麼,是否以安全的方式檢查每個用戶輸入大小? – 2012-08-05 15:29:38

+0

不,我不會那樣做。如果發生緩衝區溢出,這是一個PHP錯誤,應該修復。 – usoban 2012-08-06 08:21:10

+0

謝謝,數據氾濫(讓我們假裝某人發佈了50MB數據)有問題? – 2012-08-06 19:11:09

0

確定其'可能'。我會更感興趣的問題是你認爲攻擊媒介是在哪裏做的(一個上傳的PHP錯誤等)。此外,我認爲這是一個比其他安全問題更不可能的利用目標。

+0

我想知道是否檢查每個用戶輸入大小是一個好主意。 – 2012-08-05 15:28:59