A. 檢測漏洞有個sql注入漏洞怎麼修復
對輸入值進行校驗。
因為你這里傳入的參數id是整型,適合你的,最簡單的辦法就是在後台先判斷下id是否為整數,如果是繼續執行,如果不是跳出。
這樣,你的sql 注入漏洞就修復了。
B. 用什麼軟體可以檢測自己的本地網站是否有sql注入漏洞
簡單的漏洞測試的話 可以試一下這個 Safe3 Web漏洞掃描系統企業版v10.1 破解版
C. SQL注入攻擊原理和漏洞檢測技術
SQL注入指的是當用戶提交給伺服器的數據不在程序員的預料范圍內時,伺服器返回了一些敏感信息。通常這個是參數過濾不嚴格造成的,是程序員的責任。 舉個例子吧 比如有這個頁面 http://www.xxx.com/showdetail.asp?id=1 這個地址後有個問號,後面有個id=1這就是用戶提交給伺服器的參數 假如給後面添加個 ',這個是非法參數地址變成 http://www.xxx.com/showdetail.asp?id=1 '然後沒有過濾掉'的伺服器會給我們返回如下信息 Microsoft JET Database Engine 錯誤 '80040e14' 字元串的語法錯誤 在查詢表達式 'ID=1'' 中。 /showdetail.asp,行11 這些都是有用的信息,這意味著sql注入攻擊的原理就是利用非法參數獲得敏感信息,收集整理,分析出管理賬號密碼 那麼如何檢測網頁能否注入呢 光一個'是不夠的 正確的應該是這樣 1, http://www.xxx.com/showdetail.asp?id=1 頁面正常顯示 2, http://www.xxx.com/showdetail.asp?id=1 and 1=1 頁面顯示正常 3, http://www.xxx.com/showdetail.asp?id=1 and 1=2 頁面返回錯誤信息時 如果滿足以上三條,基本上就可一注入攻擊了 猜解管理賬號密碼可以手動,但是比較麻煩,得有sql語法知識和經驗,算是窮舉+推測的,不常用 我推薦直接使用程序猜解,網路搜搜到處有
D. 哪些工具可以用來測試sql注入漏洞
SQL注入漏洞有哪些 SQL注入攻擊是當今最危險、最普遍的基於Web的攻擊之一。所謂注入攻擊,是攻擊者把SQL命令插入到Web表單的輸入域頁面請求的查詢字元串中,如果要對一個網站進行SQL注入攻擊,首先需要找到存在SQL注入漏洞的地方
E. SQL注入工具都有哪些
明小子,啊D
穿山甲(牛B)
穿山甲不錯,能注*入*許多種類資料庫。
***********************************************************
【軟體】
過主動和雲查殺的MD5變異程序源碼
遠程式控制制軟體[獨立個人版]
DDOS壓力測試(攻擊個人電腦,網站,伺服器)
驅動鍵盤記錄器[開機到關機-離線記錄-所有鍵盤操作]
網吧破解工具(包括pubwin2009)
注意!!!
拒絕非法業務!非法使用軟體造成的一切後果由使用者承擔!
【技術】
各類遠控使用
免殺技術[內存-主動-雲]
批量抓雞[漏洞溢出,網頁掛馬,埠溢出]
編程學習:易語言木馬編寫[假窗口+內存截取]
網站檢測:SQL注入攻擊,DDOS攻擊
教學方式:
手把手教學
QQ遠程協助操作+教程
問題隨便問,學會為止,不另收-=費!
**暑期優惠+送工具+送空間+送網站webshell**
==連戲扣摳=====①伍②巴溜巴溜巴巴零
***********************************************************
F. SQL注入漏洞掃描工具有哪些
WebCruiser Web Vulnerability Scanner是一個功能不凡的Web應用漏洞掃描器,能夠對整個網站進行漏洞掃描,並能夠對發現的漏洞(SQL注入,跨站腳本)進行驗證;它也可以單獨進行漏洞驗證。
網站爬蟲(目錄及文件);
漏洞掃描(SQL注入,跨站腳本);
漏洞驗證(SQL注入,跨站腳本);
SQL Server明文/欄位回顯/盲注;
MySQL欄位回顯/盲注;
Oracle欄位回顯/盲注;
DB2欄位回顯/盲注;
Access欄位回顯/盲注;
管理入口查找;
GET/Post/Cookie 注入;
搜索型注入延時;
自動從自帶瀏覽器獲取Cookie進行認證;
自動判斷資料庫類型;
自動獲取關鍵詞;
多線程;
高級:代理、敏感詞替換/過濾;
報告;WebCruiser Web Vulnerability Scanner是一個功能不凡的Web應用漏洞掃描器,能夠對整個網站進行漏洞掃描,並能夠對發現的漏洞(SQL注入,跨站腳本)進行驗證;它也可以單獨進行漏洞驗證。
網站爬蟲(目錄及文件);
漏洞掃描(SQL注入,跨站腳本);
漏洞驗證(SQL注入,跨站腳本);
SQL Server明文/欄位回顯/盲注;
MySQL欄位回顯/盲注;
Oracle欄位回顯/盲注;
DB2欄位回顯/盲注;
Access欄位回顯/盲注;
管理入口查找;
GET/Post/Cookie 注入;
搜索型注入延時;
自動從自帶瀏覽器獲取Cookie進行認證;
自動判斷資料庫類型;
自動獲取關鍵詞;
多線程;
高級:代理、敏感詞替換/過濾;
報告;
G. 注入漏洞的檢測方法
目前比較准確的檢測注入漏洞的方法是進行網站漏洞掃描,推薦EeSafe網站安全聯盟。
查找與修補
一、注入點的查找
當我們想要測試某個站點時,一般會架上注入工具對其狂轟亂炸,這樣做雖然有時能找到注入點,但還是有些盲目,我個人的看法是:如果有源碼的話,就從源碼入手,在源碼中查找注入點。對於源碼,有些朋友可能覺得很難,其實源碼並不神秘,它也是有一定的語法規則的,看一套優秀的源碼就像是在欣賞一部精美的電影,只要我們堅持每天看一些優秀源碼,再加上網路這個老師的指點,用不了多久,源碼的神秘面紗就會被你揭去。閑話少說,下面我們就開始查找注入點,目標有兩個:一是Request,二是SQL語句。
說到Request,這個是ASP程序中的一個內建對象,怎麼?不懂?那就跟我先來惡補一下吧!它是用來獲取客戶端信息的,有五種方法,而會出現注入點的一般有以下三種:
1、Request.QueryString:取得客戶端提交的信息。當Form以Get方法提交信息,或是直接在URL中提交變數值時,在伺服器端接收數據時採用的就是這種方法。
2、Request.Form:同樣也是取得客戶端提交的信息,但它接收的是Form以Post方法提交的信息。
3、Request.Cookies:取得客戶端瀏覽器的Cookies信息。Cookies就是小甜餅,指的是一些私人信息,如用戶名、密碼之類的信息。
有些程序員為了減少錯誤,對於前兩種信息的獲取,會採用Request來取得客戶端提交的信息,這種方法,雖然可以通吃Request.QueryString和Request.Form的提交信息,但如果過濾的不好,就會被漏洞反咬一口。
了解過一些Request的知識後,下面就在「查找」中輸入「request」進行搜索,OK!當找到上面所列的三項Request語句後,再來看一下程序對這些Request語句是否做了過濾,比如ID值是否用INT過濾,例:id=int(request(id));字元串值是否用replace ()或instr()等函數進行過濾單引號或一些特殊字元,例:username=replace(request(username),, );或者程序是否採用本身的一些過濾函數來過濾這些提交值。從查找到這句request參數起,一直到SQL語句中使用這個提交值至,如果中間沒有上面的層層關卡,那麼,一個注入點,基本上就算是出現了。
說到SQL語句,不能不提到以下幾個常用的語句:
1、查詢語句:Select [(<欄位名1> [,<欄位名2>, ...])] FROM <表名JMDCW> [Where <條件表達式> [AND|OR <條件表達式>...]
2、更新語句:Update <表名JMDCW> SET 列名1 = 常量表達式1[,列名2 = 常量表達式2 ...] Where <條件表達式> [AND|OR <條件表達式>...]
3、刪除語句:Delete FROM〈表名JMDCW〉[Where <條件表達式> [AND|OR <條件表達式>...]]
這里不對SQL語句做介紹了。在上面列出的SQL語句中,注入點出現頻率最高的是Select語句,而注入參數的出沒地通常都是在Where之後的條件中。當一個沒有過濾的Request語句進入SQL語句後,就是注入大顯身手的時候了,不過,在進行注入之前還要先看一下該參數是直接引入,還是用單引號引入的,另外,該參數是否還應用於其他SQL語句中,然後,根據不同的信息,選擇不同的處理方式,或直接暴破,或UNION查詢,當然,如果存在注入點的程序使用的是SQL資料庫,那就不單單是得到一些重要信息,甚至還可以增加管理員。
下面用「螞蟻影院3.0」版注銷用戶(wantlogin.asp)中的一段源碼來做一下介紹:
引用
<%
if request(userid1)<> then
set rst=server.createobject(adodb.recordset)
sql=select money,online from users where userid=&request(userid1)& and password=&md5(request(pws))&
rst.open sql,conn,1,3
if rst.eof and rst.bof then
response.write<script>alert(用戶名或密碼錯誤!);history.back();</Script>
else
response.write<script>alert(恢復成功你現在可以登陸!);</Script>
response.write<script Language=Javascript>location.href = index.asp;</script>
rst.close
set rst=nothing
conn.close
set conn=nothing
end if
end if
%>
在其流程中,首先判斷取得的提交值userid1是否為空,不為空的話就進入SQL語句中,驗證取得的用戶名及密碼是否和資料庫內的用戶名及密碼一致,如果不一致,則彈出「用戶名及密碼錯誤」窗口,否則,就彈出「恢復成功」的窗口。這也是一段典型的注入漏洞源碼,並且,接收的方式還是使用的 request,這就給我們提交注入語句提供了最大的方便。如果我們在URL地址中提交如下字元:http: //127.0.0.1/wantlogin.asp?userid1=aa&pws=bb,因為沒有aa這個用戶,那麼就會彈出錯誤窗口,而如果我們將aa換成如下字元:aa or1=1 or 1=1,pws保持不變,這樣提交的語句到了SQL語句中就成了如下語句:
select money,online from users where userid1=aa or 1=1 or 1=1 and password=md5(bb),以往我們所見到的測試代碼一般為「or 1=1」,而這里卻多用了一個 or ,為什麼要多用一個or呢?解釋一下,在邏輯運算符中,and的優先順序別高於or ,程序運行後會先運算後面的1=1 and password=md5(bb),因為密碼是隨便輸入的,所以and後的password值為假,而and前的1=1雖然為真,但真and 假=假,所以,這個and的運算值為假,再來看or運算,因為前面的用戶名也是不存在的,其值當然為假,如此一來,where後的邏輯運算就成了如下表達式:假or真or假,結果值還是為真,這樣就會彈出「恢復成功」窗口,如果將其中的or 1=1 改為or 1=2,那邏輯表達式則成了:假or假or假,值當然也為假,彈出的就是「用戶名或密碼錯誤」的窗口。這樣,根據彈出窗口的不同,我們就可以構造一些特殊字元,然後猜測出需要的數據了,比如查詢管理員ID的語句,將or後的1=1更改為: 1=(Select top 1 id from admin),這里暫用admin表示管理員表名,如果存在ID為1的管理員,那麼就會彈出「恢復成功」的窗口,否則,就證明管理員的ID不為1,那就要再用其他數字來測試。猜出管理員ID後,再把此段字元更改為猜測管理員名稱長度的字元:5<(Select len(adminname) from admin where id=1),如為真,則證明長度大於5,否則長度小於或等於5。猜出長度後,再用asc()函數來猜測管理員的名稱:90<(select asc(mid(adminname,1,1)) from admin where id=1),如此循環,就能暴破出管理員的名稱及密碼了。
上面提到的是Request.QueryString和Request.Form的注入方法,而Request.Cookies的注入方法則是要修改本地的Cookies值來實現的,推薦使用一些專門的Cookies修改工具,不過,用Cookies來注入相對而言,就麻煩了好多,但原理和前面的注入是一樣的,這里就不介紹了。
二、注入點的修補
在上面著重講了如何查找注入點及簡單的利用方法,當我們知道了攻後,也就明白了如何守,攻和守之間雖然是對立的,但也是相互的。明白了什麼地方存在注入點,再來修補也就容易多了。在前面查找注入點時,我也提到查看程序中是否對提交參數進行了過濾,每個程序對注入的過濾函數都不相同,我們在修補自已站點上的注入點時,可參照其他程序中的過濾函數,也可根據自已的需要,單獨過濾一些敏感的字元。這里,還是以上面的那個例子來說一下如何修補注入點。在前面的 SQL語句中有這一句:userid=&request(userid1)&,這其中對提交來的參數是用單引號來引入的,而我們能成功注入也是在提交參數中加入了單引號來閉合其語句,這樣,加入一個replace()函數對單引號進行過濾,修改後的語句為:userid= &replace(request(userid1),,)&,這樣用戶再提交帶有單引號的字元時, Replace()就會將單引號過濾為空,如此一來,提交的那些特殊字元也就失去了其意義。
當然,我們還可以在userid1進入SQL語句之前,對其長度進行一下判斷,如果超過規定的長度,就彈出錯誤,中止頁面執行並返回到指定的頁面。當然還可以借鑒一些優秀源碼中的過濾方法。總之,注入漏洞是可以避免的,即使出現了注入點,只要我們分析出其出現的原因,也就能很容易地將其修補了!
H. 網站檢測後顯示SQL注入漏洞(盲注),請高手提供解決辦法,謝謝
找專業做網站安全的公司來給你解決,國內最有名的安全公司也就綠盟和sinesafe!
建站一段時間後總能聽得到什麼什麼網站被掛馬,什麼網站被黑,被攻擊。好像入侵掛馬似乎是件很簡單的事情。其實,入侵不簡單,簡單的是你的網站的必要安全措施並未做好。
有條件建議找專業做網站安全的sine安全來做安全維護。
一:掛馬預防措施:
1、建議用戶通過ftp來上傳、維護網頁,盡量不安裝asp的上傳程序。
2、定期對網站進行安全的檢測,具體可以利用網上一些工具,如sinesafe網站掛馬檢測工具!
序,只要可以上傳文件的asp都要進行身份認證!
3、asp程序管理員的用戶名和密碼要有一定復雜性,不能過於簡單,還要注意定期更換。
4、到正規網站下載asp程序,下載後要對其資料庫名稱和存放路徑進行修改,資料庫文件名稱也要有一定復雜性。
5、要盡量保持程序是最新版本。
6、不要在網頁上加註後台管理程序登陸頁面的鏈接。
7、為防止程序有未知漏洞,可以在維護後刪除後台管理程序的登陸頁面,下次維護時再通過ftp上傳即可。
8、要時常備份資料庫等重要文件。
9、日常要多維護,並注意空間中是否有來歷不明的asp文件。記住:一分汗水,換一分安全!
10、一旦發現被入侵,除非自己能識別出所有木馬文件,否則要刪除所有文件。
11、對asp上傳程序的調用一定要進行身份認證,並只允許信任的人使用上傳程序。這其中包括各種新聞發布、商城及論壇程
二:掛馬恢復措施:
1.修改帳號密碼
不管是商業或不是,初始密碼多半都是admin。因此你接到網站程序第一件事情就是「修改帳號密碼」。帳號
密碼就不要在使用以前你習慣的,換點特別的。盡量將字母數字及符號一起。此外密碼最好超過15位。尚若你使用
SQL的話應該使用特別點的帳號密碼,不要在使用什麼什麼admin之類,否則很容易被入侵。
2.創建一個robots.txt
Robots能夠有效的防範利用搜索引擎竊取信息的駭客。
3.修改後台文件
第一步:修改後台里的驗證文件的名稱。
第二步:修改conn.asp,防止非法下載,也可對資料庫加密後在修改conn.asp。
第三步:修改ACESS資料庫名稱,越復雜越好,可以的話將數據所在目錄的換一下。
4.限制登陸後台IP
此方法是最有效的,每位虛擬主機用戶應該都有個功能。你的IP不固定的話就麻煩點每次改一下咯,安全第一嘛。
5.自定義404頁面及自定義傳送ASP錯誤信息
404能夠讓駭客批量查找你的後台一些重要文件及檢查網頁是否存在注入漏洞。
ASP錯誤嘛,可能會向不明來意者傳送對方想要的信息。
6.慎重選擇網站程序
注意一下網站程序是否本身存在漏洞,好壞你我心裡該有把秤。
7.謹慎上傳漏洞
據悉,上傳漏洞往往是最簡單也是最嚴重的,能夠讓黑客或駭客們輕松控制你的網站。
可以禁止上傳或著限制上傳的文件類型。不懂的話可以找專業做網站安全的sinesafe公司。
8. cookie 保護
登陸時盡量不要去訪問其他站點,以防止 cookie 泄密。切記退出時要點退出在關閉所有瀏覽器。
9.目錄許可權
請管理員設置好一些重要的目錄許可權,防止非正常的訪問。如不要給上傳目錄執行腳本許可權及不要給非上傳目錄給於寫入權。
10.自我測試
如今在網上黑客工具一籮筐,不防找一些來測試下你的網站是否OK。
11.例行維護
a.定期備份數據。最好每日備份一次,下載了備份文件後應該及時刪除主機上的備份文件。
b.定期更改資料庫的名字及管理員帳密。
c.借WEB或FTP管理,查看所有目錄體積,最後修改時間以及文件數,檢查是文件是否有異常,以及查看是否有異常的賬號。
網站被掛馬一般都是網站程序存在漏洞或者伺服器安全性能不達標被不法黑客入侵攻擊而掛馬的。
網站被掛馬是普遍存在現象然而也是每一個網站運營者的心腹之患。
您是否因為網站和伺服器天天被入侵掛馬等問題也曾有過想放棄的想法呢,您否也因為不太了解網站技術的問題而耽誤了網站的運營,您是否也因為精心運營的網站反反復復被一些無聊的黑客入侵掛馬感到徬彷且很無耐。有條件建議找專業做網站安全的sine安全來做安全維護。
I. 如何防範SQL注入漏洞及檢測
SQL注入漏洞攻擊的防範方法有很多種,現階段總結起來有以下方法:
(1)數據有效性校驗。如果一個輸入框只可能包括數字,那麼要通過校驗確保用戶輸入的都是數字。如果可以接受字母,那就要檢查是不是存在不可接受的字元,最好的方法是增加字元復雜度自動驗證功能。確保應用程序要檢查以下字元:分號、等號、破折號、括弧以及SQL關鍵字。另外限製表單數據輸入和查詢字元串輸入的長度也是一個好方法。如果用戶的登錄名最多隻有10個字元,那麼不要認可表單中輸入10個以上的字元,這將大大增加攻擊者在SQL命令中插入有害代碼的難度。
(2)封裝數據信息。對客戶端提交的數據進行封裝,不要將數據直接存入cookie中,方法就是在編程的代碼中,插入session、if、try、else,這樣可以有效地防止攻擊者獲取cookie中的重要信息。
(3)去除代碼中的敏感信息。將在代碼中存在的用戶名、口令信息等敏感欄位刪除,替換成輸入框。
SQL=" select from users where username = 』admin』and password= 』1234567』 "
如:這樣顯然會暴露管理員的用戶名、口令信息。可以將其修改成:
SQL= " select * from users where username='" +Txtuser.Text + "' and userpwd='" + Textpwd.Text + "'"
這樣就安全了很多,入侵者也是不會輕易的就獲取到用戶名、口令信息。
(4)替換或刪除單引號。使用雙引號替換掉所有用戶輸入的單引號,這個簡單的預防措施將在很大程度上預防SQL注入漏洞攻擊,單引號時常會無法約束插入數據的Value,可能給予輸入者不必要的許可權。用雙引號替換掉單引號可以使大部分SQL注入漏洞攻擊失敗。 如:
「select* from users where username='" + admin + "' and userpwd='" + 1234567+ "'」
顯然會得到與
「select * from users where username='admin' and password= '1234567'」
相同的結果。
(5)指定錯誤返回頁面。攻擊者有時從客戶端嘗試提交有害代碼和攻擊字元串,根據Web Service給出的錯誤提示信息來收集程序及伺服器的信息,從而獲取想得到的資料。應在Web Service中指定一個不包含任何信息的錯誤提示頁面。
(6)限制SQL字元串連接的配置文件。使用SQL變數,因為變數不是可以執行的腳本,即在Web頁面中將連接資料庫的SQL字元串替換成指定的Value,然後將Web.config文件進行加密,拒絕訪問。
(7)設置Web目錄的訪問許可權。將虛擬站點的文件目錄禁止遊客用戶(如:Guest用戶等)訪問,將User用戶許可權修改成只讀許可權,切勿將管理許可權的用戶添加到訪問列表。
(8)最小服務原則。Web伺服器應以最小許可權進行配置,只提供Web服務,這樣可以有效地阻止系統的危險命令,如ftp、cmd、vbscript等。
(9)鑒別信息加密存儲。將保存在資料庫users表中的用戶名、口令信息以密文形式保存,也可以對users表進行加密處理,這樣可以大大增加對鑒別信息訪問的安全級別。
(10)用戶許可權分離。應盡可能的禁止或刪除資料庫中sa許可權用戶的訪問,對不同的資料庫劃分不同的用戶許可權,這樣不同的用戶只能對授權給自己的資料庫執行查詢、插入、更新、刪除操作,就可以防止不同用戶對非授權的資料庫進行訪問。