SQL注入黑客防線網(wǎng)站原理是怎樣的
所謂SQL注入,就是通過(guò)把SQL命令插入到Web表單提交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。這篇文章主要介紹了SQL注入黑客防線網(wǎng)站實(shí)例分析,需要的朋友可以參考下。
方法步驟
當(dāng)在頁(yè)面加上①and 1=1和②and 1=2,都提示“處理 URL 時(shí)服務(wù)器上出錯(cuò)。請(qǐng)和系統(tǒng)管理員聯(lián)絡(luò)”,看起來(lái)象已經(jīng)過(guò)濾了非法提交,IIS也關(guān)閉了錯(cuò)誤提示,再加上一個(gè)③單引號(hào)’的時(shí)候,也出同樣的錯(cuò)誤提示,然而明顯與前兩個(gè)錯(cuò)誤提示不同,因?yàn)榍罢唢@示了黑客防線的Logo才提示錯(cuò)誤,后者則是一個(gè)空白的錯(cuò)誤提示頁(yè)。
這可是我從來(lái)沒(méi)碰到過(guò)的特殊情況,到底能不能注入呢?
換個(gè)角度,從程序員的思路是怎么寫(xiě)這段程序的。首先,如果是用cint之類函數(shù),那三種測(cè)試方法錯(cuò)誤提示應(yīng)該是完全一樣的;如果沒(méi)過(guò)濾的話,①②的結(jié)果應(yīng)該是不一樣的。排除了幾種情況,最后覺(jué)得極可能是部分語(yǔ)句過(guò)濾,出現(xiàn)這種情況很可能是cint語(yǔ)句不小心放到SQL語(yǔ)句的后面,在SQL語(yǔ)句通過(guò)后,后面的語(yǔ)句報(bào)錯(cuò)。
雖然還不很確定實(shí)際的程序是怎么寫(xiě)的,但可以確定,這確實(shí)是一個(gè)注入點(diǎn)!
根據(jù)《SQL注入漏洞全接觸》,下一步就是判斷數(shù)據(jù)庫(kù)類型,因?yàn)殄e(cuò)誤提示都被屏蔽,只能通過(guò)系統(tǒng)表測(cè)試了,輸入:
提示出錯(cuò),沒(méi)出現(xiàn)Logo,說(shuō)明是語(yǔ)句本身有錯(cuò),極可能是表sysobjects不存在,也就是說(shuō)數(shù)據(jù)庫(kù)是Access,再拿一個(gè)Access應(yīng)有的系統(tǒng)表試試(msysobjects在這個(gè)時(shí)候派不上用場(chǎng),因?yàn)樵赪eb下沒(méi)有權(quán)限讀取,SQL語(yǔ)句同樣不能通過(guò),所以,必須換個(gè)有權(quán)限的表如MSysAccessObjects),果然,出現(xiàn)了黑防的Logo,證實(shí)數(shù)據(jù)庫(kù)確實(shí)是Access。
接下來(lái)的猜解就比較簡(jiǎn)單了,用(count(1) from admin)>=0測(cè)試出admin表存在,表中有username、password字段。本來(lái)以為下面就是用最普通的Ascii解碼法猜解記錄,小Case,沒(méi)想到,一開(kāi)始猜解,才發(fā)現(xiàn)這是最難啃的一塊骨頭:傳統(tǒng)的Ascii對(duì)比中,無(wú)論條件是否成立,語(yǔ)句都是可以正確執(zhí)行的,它是利用ASP的出錯(cuò)而非SQL語(yǔ)句的出錯(cuò)來(lái)發(fā)現(xiàn)錯(cuò)誤的,在這個(gè)頁(yè)面,不管你成不成立,都是顯示一個(gè)Logo然后報(bào)錯(cuò),根據(jù)無(wú)法做出判斷。
冥思苦想了半個(gè)鐘頭,終于想出一種方法,讓SQL語(yǔ)句有條件的報(bào)錯(cuò),先看看語(yǔ)句:
寫(xiě)出這個(gè)語(yǔ)句的時(shí)候,連我自己都好崇拜我自己,哈哈,別吐,解釋一下,asc(mid(username,1,1))這個(gè)都看得懂,取username第一位的ASCII碼,大于96的話,select出數(shù)字1,小于等于96的話,select輸出字符串username,然后,拿select出的值與0比較。
1與0都是數(shù)字型,當(dāng)ASCII碼大于96的時(shí)候,SQL語(yǔ)句不會(huì)出錯(cuò);username則是字符型,當(dāng)ASCII碼小于等于96的時(shí)候,SQL語(yǔ)句會(huì)出錯(cuò)。所以,兩種情況的出錯(cuò)提示是不同的,我們可以根據(jù)出錯(cuò)提示判斷語(yǔ)句是否成立,從而逐步縮小每一位字符的范圍,得出username的值。
于是,根據(jù)上面所說(shuō)的方法,得出username的值為:chr(98)+ chr(114)+ chr(105)+ chr(103)+ chr(104)+ chr(116)=bright,password的值為chr(109)+ chr(105)+ chr(110)+ chr(103)+ chr(116)+ chr(105) + chr(97)+ chr(110)=mingtian,解碼完成。
補(bǔ)充:校園網(wǎng)安全維護(hù)技巧
校園網(wǎng)絡(luò)分為內(nèi)網(wǎng)和外網(wǎng),就是說(shuō)他們可以上學(xué)校的內(nèi)網(wǎng)也可以同時(shí)上互聯(lián)網(wǎng),大學(xué)的學(xué)生平時(shí)要玩游戲購(gòu)物,學(xué)校本身有自己的服務(wù)器需要維護(hù);
在大環(huán)境下,首先在校園網(wǎng)之間及其互聯(lián)網(wǎng)接入處,需要設(shè)置防火墻設(shè)備,防止外部攻擊,并且要經(jīng)常更新抵御外來(lái)攻擊;
由于要保護(hù)校園網(wǎng)所有用戶的安全,我們要安全加固,除了防火墻還要增加如ips,ids等防病毒入侵檢測(cè)設(shè)備對(duì)外部數(shù)據(jù)進(jìn)行分析檢測(cè),確保校園網(wǎng)的安全;
外面做好防護(hù)措施,內(nèi)部同樣要做好防護(hù)措施,因?yàn)橛械膶W(xué)生電腦可能帶回家或者在外面感染,所以內(nèi)部核心交換機(jī)上要設(shè)置vlan隔離,旁掛安全設(shè)備對(duì)端口進(jìn)行檢測(cè)防護(hù);
內(nèi)網(wǎng)可能有ddos攻擊或者arp病毒等傳播,所以我們要對(duì)服務(wù)器或者電腦安裝殺毒軟件,特別是學(xué)校服務(wù)器系統(tǒng)等,安全正版安全軟件,保護(hù)重要電腦的安全;
對(duì)服務(wù)器本身我們要安全server版系統(tǒng),經(jīng)常修復(fù)漏洞及更新安全軟件,普通電腦一般都是撥號(hào)上網(wǎng),如果有異常上層設(shè)備監(jiān)測(cè)一般不影響其他電腦。做好安全防范措施,未雨綢繆。
相關(guān)閱讀:提高服務(wù)器安全性的技巧
1.經(jīng)常更改系統(tǒng)管理員密碼。---->且密碼最好是大小寫(xiě)都有
2.定期更新系統(tǒng)補(bǔ)丁。---->開(kāi)啟自動(dòng)更新,并設(shè)定到晚上重啟。
3.檢查系統(tǒng)是否多出超級(jí)管理員,檢查是否有帳號(hào)被克隆在“開(kāi)始”>運(yùn)行中輸入“cmd”>在輸入 net localgroup administrators
4.在“開(kāi)始”>運(yùn)行中輸入“msconfig”檢查隨機(jī)啟動(dòng)的程序和服務(wù),關(guān)掉不必要的隨機(jī)啟動(dòng)程序和服務(wù)。
5.服務(wù)器上的所有程序盡量安裝程序的最新穩(wěn)定版。
6.檢查SERVU是否被創(chuàng)建有執(zhí)行權(quán)限的用戶或者對(duì)C盤(pán)有讀寫(xiě)權(quán)限的用戶,并且給SERVU設(shè)置一個(gè)登錄密碼。如果需要請(qǐng)給serv_u設(shè)置獨(dú)立啟動(dòng)賬戶。
7.不要隨意安裝任何的第三方軟件。例如XX優(yōu)化軟件,XX插件之類的,更不要在服務(wù)器上注冊(cè)未知的組件。
8.不要隨意在服務(wù)器上使用IE訪問(wèn)任何網(wǎng)站,杜絕隱患那是必須的。
9. 檢查系統(tǒng)日志的“安全性”條目,在右側(cè)查看近期“審核成功”的登錄
10.不要在服務(wù)器上雙擊運(yùn)行任何程序,不然怎么中了木馬都不知道。
11.不要在服務(wù)器上用IE打開(kāi)用戶的硬盤(pán)中的網(wǎng)頁(yè),這是危險(xiǎn)的行為。
12.不要在服務(wù)器上瀏覽圖片,以前windows就出過(guò)GDI 的安全漏洞。
13.及時(shí)的更新病毒庫(kù),查殺病毒。
14.定時(shí)的查看系統(tǒng)各個(gè)盤(pán)符的磁盤(pán)權(quán)限,是否為設(shè)定的安全權(quán)限。
15.確保你自己的電腦安全,如果自己的電腦不安全,服務(wù)器也可能不太安全。
SQL注入相關(guān)文章: