解讀SQL注入漏洞初級(jí)應(yīng)用之Access篇_Access數(shù)據(jù)庫教程
推薦:解讀ADO訪問不同數(shù)據(jù)庫的差別Microsoft公司提供了統(tǒng)一的數(shù)據(jù)訪問接口ActiveX Data Object,簡(jiǎn)稱ADO。但實(shí)際應(yīng)用編程中,訪問不同的數(shù)據(jù)庫,如Access、SQL Server或VFP,會(huì)存在一些“細(xì)微”差別,常常有這樣的情況,用ADO對(duì)象訪問某一數(shù)據(jù)庫的程序都調(diào)試通過了,但用同樣的程序訪問其他數(shù)
如果你已經(jīng)掌握了SQL注入漏洞的一些相關(guān)的基礎(chǔ)知識(shí),那是不是覺得看了理論有一種想急于知道如何實(shí)際動(dòng)手操作的沖動(dòng),好吧,Let’s go,這篇文章我們就來實(shí)戰(zhàn)SQL注入,不過針對(duì)網(wǎng)站的數(shù)據(jù)庫是ACCESS的,畢竟在國內(nèi)都是用虛擬機(jī),一般只有FTP上傳權(quán)限,所以還是很有市場(chǎng)的。首先要注意的是,如果你以前沒試過SQL注入的話,那么第一步先把IE菜單=>工具=>Internet選項(xiàng)=>高級(jí)=>顯示友好 HTTP 錯(cuò)誤信息前面的勾去掉。否則,不論服務(wù)器返回什么錯(cuò)誤,IE都只顯示為HTTP 500服務(wù)器錯(cuò)誤,不能獲得更多的提示信息。
1.入侵測(cè)試目標(biāo):
前不久我們學(xué)校的一個(gè)同學(xué)做了個(gè)網(wǎng)站,做的還挺漂亮的,叫我去看下,我順便對(duì)它進(jìn)行了一次安全檢測(cè)。文章發(fā)表前已經(jīng)征得該同學(xué)的同意,請(qǐng)不要效仿。下面的真實(shí)網(wǎng)址已經(jīng)被我屏蔽。
測(cè)試網(wǎng)站:http://www.xxx.com/index.asp
2.尋找可能的SQL注入點(diǎn)
我們知道,一般的文章管理系統(tǒng),下載系統(tǒng),論壇,留言本,相冊(cè)等都會(huì)有個(gè)show.asp?id= list.asp?id= news.asp?id= 什么的,其實(shí)一看就知道是調(diào)用SQL語句查詢數(shù)據(jù)庫并顯示出來。我們不難發(fā)現(xiàn)這個(gè)站的新聞系統(tǒng)就是show.asp?id=的形式,隨便點(diǎn)一個(gè)鏈接得到地址如下:
http://www.xxx.com/show.asp?id=474
從這個(gè)地址就知道是通過show.asp執(zhí)行SQL語句訪問數(shù)據(jù)庫,可想而知,SQL語句原貌大致如下:
select * from 表名 where 字段=xx,如果這個(gè)show.asp對(duì)后面的id整型參數(shù)過濾好的話,就可能存在SQL注入漏洞。
3.判斷SQL注入是否存在
通過上面的分析知道,要判斷有沒有SQL注入漏洞,就得看show.asp有沒對(duì)參數(shù)過濾好,所以可以用以下步驟測(cè)試SQL注入是否存在。
a.最簡(jiǎn)單的判斷方法
在要檢測(cè)的網(wǎng)址后面加一個(gè)單引號(hào):http://www.xxx.com /show.asp?id=474’
此時(shí)show.asp中的SQL語句變成了:select * from 表名 where 字段=xx’,如果程序沒有過濾好“’”的話,就會(huì)提示 show.asp運(yùn)行異常;但這樣的方法雖然很簡(jiǎn)單,但并不是最好的,因?yàn)椋?
第一:不一定每臺(tái)服務(wù)器的IIS都返回具體錯(cuò)誤提示給客戶端,如果程序中加了cint(參數(shù))之類語句的話,SQL注入是不會(huì)成功的,但服務(wù)器同樣會(huì)報(bào)錯(cuò),具體提示信息為處理 URL 時(shí)服務(wù)器上出錯(cuò)。請(qǐng)和系統(tǒng)管理員聯(lián)絡(luò)。
第二:由于以前存在過的1’ or ‘1’=’1漏洞,所以目前大多數(shù)程序員已經(jīng)將“’“ 過濾掉,所以用" '"測(cè)試不到注入點(diǎn),所以一般使用經(jīng)典的1=1和1=2測(cè)試方法,如下:
http://www.xxx.com /show.asp?id=474 and 1=1, show.asp運(yùn)行正常,而且與http://www.xxx.com /show.asp?id=474運(yùn)行結(jié)果相同。
http://ww.xxx.com /show.asp?id=474 and 1=2, show.asp運(yùn)行異常,(這就是經(jīng)典的 1=1 1=2 判斷方法)。
這里很明顯當(dāng)加 and 1=1 的時(shí)候返回完全正常的頁面,加 and 1=2 顯示:暫時(shí)還沒有文章!
到這里基本上可以斷定他存在SQL注入,至于能不能注出賬號(hào)密碼來,還需要更進(jìn)一步的注入測(cè)試,這里只能得到SQL注入點(diǎn): http://www.xxx.com/show.asp?id=474
4.判斷表是否存在
國內(nèi)的一般程序員在設(shè)計(jì)數(shù)據(jù)庫的時(shí)候都會(huì)用一些特定的做為表名,字段名什么的。比如說后臺(tái)管理員一般放在表admin里面,而注冊(cè)的用戶放在表users里,當(dāng)然,只是一般,依照各程序的不同而不同。
分享:如何防止Access 2000密碼被破如果你過分信任 Access 2000數(shù)據(jù)庫的密碼保護(hù),你可能會(huì)因此而蒙受損失。這是因?yàn)锳ccess 2000的數(shù)據(jù)庫級(jí)密碼并不安全,相反它很脆弱,甚至下面這段非常小的程序就可以攻破它: 程序一(VB6):Access 2000密碼破譯 Private Sub Command1_Click() Const Off
- Access數(shù)據(jù)庫安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語句刪除表關(guān)系
- Access報(bào)表打印如何自動(dòng)分頁
- Access完成累計(jì)余額的計(jì)算
- 搭建Access為主的Mdb數(shù)據(jù)庫
- 一句sql更新兩個(gè)表并可更新對(duì)應(yīng)的字段值具體實(shí)現(xiàn)
- MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語句)介紹
- 內(nèi)網(wǎng)ssh/mysql登錄緩慢的解決方法
- 使用準(zhǔn)則進(jìn)行條件查詢--1.4.從窗體中選擇查詢的條件
- 中文Access2000速成教程--1.1 使用“向?qū)А痹O(shè)計(jì)數(shù)據(jù)庫
- 中文Access2000速成教程--1.3 在“設(shè)計(jì)”視圖中設(shè)計(jì)表
Access數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Access數(shù)據(jù)庫教程推薦
- Access使用宏控制程序之一個(gè)宏的實(shí)例檢驗(yàn)口令
- 談Access為后臺(tái)數(shù)據(jù)庫的網(wǎng)站統(tǒng)計(jì)系統(tǒng)
- Word與Access數(shù)據(jù)交流技巧
- Access的控件布局之控件對(duì)齊
- 怎樣解決文本框顯示小數(shù)點(diǎn)后很多數(shù)字的問題
- Access 的最大容量
- access升級(jí)到SQLServer如何調(diào)整字段類型及函數(shù):JET SQL 和T-SQL
- 解析SQL查找Access中某表是否存在方法
- 用Access設(shè)計(jì)客觀試卷(1)
- ACCESS數(shù)據(jù)庫文件的壓縮和修復(fù)方法[圖文]
猜你也喜歡看這些
- 相關(guān)鏈接:
- 教程說明:
Access數(shù)據(jù)庫教程-解讀SQL注入漏洞初級(jí)應(yīng)用之Access篇
。