SQLInjection(资料隐码)简介.ppt_第1页
SQLInjection(资料隐码)简介.ppt_第2页
SQLInjection(资料隐码)简介.ppt_第3页
SQLInjection(资料隐码)简介.ppt_第4页
SQLInjection(资料隐码)简介.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL Injection (資料隱碼) 簡介,大綱,前言 什麼是SQL Injection 影響的系統 SQL Injection原理 SQL Injection攻擊 SQL 帳號設定 如何防範SQL Injection,前言,在 1997 年以前國外電腦通信雜誌曾經披露此一弱點。 刑事警察局與新波科技公司合作, 4月23日公佈有關SQL Injection的調查,由於國內九成以上網站皆使用SQL資料庫系統,因此,經警方測試,研判國內八成以上的網站已面臨資料隱碼攻擊方式的嚴重威脅。,什麼是SQL Injection,SQL Injection 應稱為 SQL 指令植入式攻擊,主要是屬於 Input Validation 的問題。目前被翻譯成資料隱碼攻擊。 SQL Injection攻擊法並非植入電腦病毒,它是描述一個利用寫入特殊SQL程式碼攻擊應用程式的動作。 換言之,只要提供給使用者輸入的介面,又沒有做到相當嚴密的輸入資料型態管制,就有可能會遭受這種行為的攻擊。,SQL Injection,SQL Injection 的起因通常是因為程式利用字串建造方式執行。 利用正常查詢網站資料時,將攻擊資料庫的指令夾藏於網站查詢命令中。 攻擊者可穿透防火牆,繞過身分認證機制,取得資料庫使用權限,進而竊取資料或竄改、破壞資料庫。,影響的系統,Apache、IIS、Domino、Netscape的網站系統,透過ASP、PHP與JSP等程式碼,攻擊破壞各種SQL資料庫。 影響的系統包括MSSQL、MySQL、Oracle、Sybase與DB2等。,SQL Injection,攻擊成立的前提 輸入欄位沒有針對特殊符號進行過濾 查詢欄位沒有限制長度及內容 資料庫的權限過高 攻擊者猜測到資料欄位的部分資訊 ASP源碼洩漏的漏洞,ASP程式碼中可能內含資料庫之帳號密碼,注意!,以下關於SQL Injection說明僅為教學講解之用,提供伺服器管理人員針對自身系統進行檢查之參考,若在未事先備份的情況下,造成資料庫系統損害,後果請自行負責 未經其它網站管理人員同意前,嚴禁惡意測試他人網站系統之安全性,否則造成任何法律糾紛皆自行負責,SQL Injection原理,一般輸入帳號密碼的網站的SQL語法 select * from member where UID = “& request(“ID“) &“ And Passwd = “& request(“Pwd“) & “ 如果正常使用者帳號A123456789 ,密碼1234 select * from member where UID =A123456789 And Passwd=1234 輸入的帳號與密碼等資訊會取代ASP( or PHP、JSP)中的變數,並由兩個單引號( )所包住,SQL Injection原理 (cont.),select * from member where UID = “& request(“ID“) &“ And Passwd = “& request(“Pwd“) & “ 若攻擊者已知系統中已有一個Admin的管理者帳號,則輸入Admin - ,即可不須輸入密碼而進入資料庫 select * from member where UID = Admin - And Passwd = 註: - 符號後的任何敘述都會被當作註解 (以上面為例,And子句將被SQL視為說明用),正常連線狀態,SQL Injection攻擊,SQL Injection攻擊(範例一),一旦惡意使用者輸入 使用者帳號 or 1=1 -,密碼asdf1234(任意輸入) select * from member where UID = or 1=1 - And Passwd = asdf1234,SQL Injection攻擊(範例二),一旦惡意使用者輸入 使用者帳號abcdefg (任意輸入) , 密碼asdf (任意輸入) or 1=1 - select * from member where UID = abcdefg And Passwd = asdf or 1=1 - ,SQL Injection攻擊(範例三),SELECT * FROM myTable WHERE someText = “ & request.form(“inputdata“) & “ 若使用者輸入以下字串 exec masterxp_cmdshell net user test testpass /ADD - SELECT * FROM myTable WHERE someText = exec masterxp_cmdshell net user test testpass /ADD- 如此一來,便可在SQL伺服器上新增一個使用者test帳號(密碼testpass),SQL Injection攻擊,其它的變化型 ;SHUTDOWN- 停止SQL伺服器 ;DROP Database - 刪除資料庫 ;DROP Table - 刪除資料表 ;DELETE FROM - 刪除資料表 ;Truncate Table - 清空資料表,SQL帳號設定,sa 權限 sa 權限就是可以管理所有資料庫權限,因此攻擊者就有可能讀取,寫入,甚至可以刪除所有 SQL 資料庫伺服器裡的資料。 造成影響 攻擊者可以得到 SQL Server 以及作業系統完整的控制。 攻擊者透過 xp_cmdshell 的延伸預存程序(extended stored procedure )能夠對 SQL Server 資料庫上的所有資料進行任意的存取動作, 甚至可以在SQL Server尚值入後門。,SQL帳號設定 (cont.),db_owner 權限 如果被攻擊的應用程式擁有 db_owner 權限,攻擊者有可能讀取或寫入在被攻陷的資料庫裡的所有資料,攻擊者也有可能移除表格,建立新物件,並掌控被攻陷的資料庫。 造成影響 攻擊者能夠對資料庫上的所有資料進行讀寫動作。 能夠刪除Table、建立新 Table、進而取得被影響資料庫的控制權。,SQL帳號設定 (cont.),normal user 一般使用者權限 (建議使用) 造成影響 攻擊者只能掌控被攻陷的那個使用者的資料庫 在比較好的情況下,攻擊者只能執行一些閱讀指令 在最差狀況下, 攻擊者也只能夠閱讀或寫入被攻陷的那個使用者的表格,如何防範SQL Injection,網頁程式撰寫方面 過濾輸入條件中可能隱含的sql指令,如INSERT、SELECT、UPDATE等 針對輸入條件進行規範,如無必要,應規範為僅可接受大小寫英文字母與數字等 針對特殊的查詢參數進行過濾,如-、 等可利用replace(xx, “ “, “ “)進行替換 進行程式寫作時,應時常檢查程式是否存在有非預期輸入資料的漏洞。,如何防範SQL Injection (cont.),資料庫管制方面 Sa管理帳號的密碼管控 刪除多餘的公開資料表(程式開發、範例等) 若無特殊必要,將其他使用者設定為一般使用者權限,以避免完整資料庫內容遭入侵 移除不必要但功能強大的延伸預存程序,如xp_cmdshell 、xp_regaddmultistring 、xp_unpackcab等,如何防範SQL Injection (cont.),網站伺服器方面 定期修補作業系統與網站伺服器的漏洞 避免ASP、PHP與JSP程式源碼洩漏,造成使用者可以直接瀏覽 更改預設的網站虛擬路徑,如IIS系統不要使用預設的C:InetpubWWWRoot的目錄 不提供錯誤訊息給使用者 攻擊者可藉由回報的錯誤訊息得知資料庫的結構 建議將錯誤輸入重導到適當網頁 修改C:WINNTHelpiisHelpcommon500-100.asp的預設錯誤網頁,如何防範SQL Injection (cont.),外部防護系統的控管 可藉由防火牆系統管制port 1433與1434的連線 藉由防火牆限制網路登入者的身份 藉由Host-based IDS或Application-based IDS來監控系統運作的執行,參考資料,The Open Web Application Security Project /asac/input_validation/sql.shtml 新波科技.tw/ 精誠公司安全通報.tw/news/press/020424.shtml,參考資

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论