您的位置:首页精文荟萃软件资讯 → 精通Sql Injection技术

精通Sql Injection技术

时间:2004/10/7 18:19:00来源:本站整理作者:蓝点我要评论(0)

 SQL Injection 應稱為 SQL 指令植入式攻擊,主要是屬於 Input Validation 的問題。目前被翻譯成『資料隱碼』攻擊。
SQL Injection攻擊法並非植入電腦病毒,它是描述一個利用寫入特殊SQL程式碼攻擊應用程式的動作。
換言之,只要提供給使用者輸入的介面,又沒有做到相當嚴密的輸入資料型態管制,就有可能會遭受這種行為的攻擊。
Apache、IIS、Domino、Netscape的網站系統,透過ASP、PHP與JSP等程式碼,攻擊破壞各種SQL資料庫。
影響的系統包括MSSQL、MySQL、Oracle、Sybase與DB2等。
一般輸入帳號密碼的網站的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)中的變數,並由兩個單引號('  ')所包住
select * from member where UID ='  "& request("ID") &"  '  And Passwd =' "& request("Pwd") & " ' 
若攻擊者已知系統中已有一個Admin的管理者帳號,則輸入Admin '-- ,即可不須輸入密碼而進入資料庫
select * from member where UID =' Admin '-- '  And Passwd =' ' 
註: -- 符號後的任何敘述都會被當作註解 (以上面為例,And子句將被SQL視為說明用)
一旦惡意使用者輸入  使用者帳號' or 1=1 --,密碼asdf1234(任意輸入)  select * from member where UID =' ' or 1=1 -- '  And Passwd = 'asdf1234'
一旦惡意使用者輸入  使用者帳號abcdefg (任意輸入) , 密碼asdf (任意輸入) ' or 1=1 --  select * from member where UID =' abcdefg '  And Passwd = ' asdf ' or 1=1 -- '
如何防範SQL Injection
網頁程式撰寫方面 
過濾輸入條件中可能隱含的sql指令,如INSERT、SELECT、UPDATE等 
針對輸入條件進行規範,如無必要,應規範為僅可接受大小寫英文字母與數字等 
針對特殊的查詢參數進行過濾,如--、 ' 等可利用replace(xx, " ' ", " ' ' ")進行替換 
進行程式寫作時,應時常檢查程式是否存在有非預期輸入資料的漏洞。
網站伺服器方面 
定期修補作業系統與網站伺服器的漏洞 
避免ASP、PHP與JSP程式源碼洩漏,造成使用者可以直接瀏覽 
更改預設的網站虛擬路徑,如IIS系統不要使用預設的C:\Inetpub\WWWRoot\的目錄 
不提供錯誤訊息給使用者 
攻擊者可藉由回報的錯誤訊息得知資料庫的結構 
建議將錯誤輸入重導到適當網頁 
修改C:\WINNT\Help\iisHelp\common\500-100.asp的預設錯誤網頁
參考資料
The Open Web Application Security Project http://www.owasp.org/asac/input_validation/sql.shtml 
新波科技http://www.diamondinfotech.com.tw/ 
精誠公司安全通報http://www.sysware.com.tw/news/press/020424.shtml 
台灣微軟公司關於SQL Injection的相關報導 
http://www.microsoft.com/taiwan/sql/SQL_Injection.htm 
http://www.microsoft.com/taiwan/sql/SQL_Injection_G1.htm 
SQL Server電子雜誌http://www.sqlserver.com.tw/ 

本文来自:http://211.147.7.146:88/zkbbs/new/book/sql/SqlInjection.files/frame.htm 

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本