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