久艹视频免费看,亚洲成av人综合在线观看,51久久夜色精品国产水果派解说,gogo全球大胆高清人体444

知識學堂
  • ·聯系電話:+86.023-75585550
  • ·聯系傳真:+86.023-75585550
  • ·24小時手機:13896886023
  • ·QQ 咨 詢:361652718 513960520
當前位置 > 首頁 > 知識學堂 > 網站建設知識
數據庫mysql注入sleep語句引發(fā)的拒絕服務及修復方案
更新時間:2012-02-18 | 發(fā)布人:本站 | 點擊率:429
數據庫mysql注入sleep語句引發(fā)的拒絕服務及修復方案
mysql存在注入,并且注入的sleep語句如果傳入一個足夠大的參數,比如:sleep(9999999999).
如果數據庫用的是myisam引擎,且注入點是某個會鎖表的語句(insert,replace,update,delete),那么整個數據表的訪問都會被阻塞。
使用該表的所有應用的讀庫請求都會被阻塞。
如果數據庫使用的是主從分離的架構,www.2cto.com 那么Master和Slave的同步會被sleep語句阻塞,導致從庫無法從主庫正常同步數據。一些依賴于主從同步的應用也會無法正常工作。
就算僅僅是讀操作,經過有限次的請求,也會很快的達到數據庫的max_connections限制,而導致數據庫拒絕服務。
 
 
漏洞證明:
 
注入語句update test_inj set xx=1 and sleep(9999999999);
 
mysql> select * from test_inj;
 
請求會被阻塞。直到手動殺死那個鎖表的語句。
 
線上實驗后果會比較嚴重,就不貼真實的例子了。測試者請用自己搭建的數據庫。不要害人。
 
 
修復方案:
 
禁用mysql的sleep函數。或者修改它的sleep上限,拒絕不合理的超長sleep,F實中很少用到這個sleep功能,就算遇到需要sleep的場景,也可以通過外部應用來實現sleep。