SLInjecin资料隐码简介.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SLInjecin资料隐码简介

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 master..xp_cmdshell net user test testpass /ADD -- SELECT * FROM myTable WHERE someText = exec master..xp_cmdshell net user

文档评论(0)

docman126 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档