目前我經常用的漏洞檢測工具主要就是愛內測,因為愛內測會根據應用特性,對程序機密性會採取不同程度不同方式的檢測,檢測項目包括代碼是否混淆,DEX、so庫文件是否保護,程序簽名、許可權管理是否完整等;組件安全檢測主要針對Activity、Broadcast Receiver、Service、WebView、Intent等是否存在漏洞,並給出針對性建議;數據安全會全面檢測APP存在的數據泄漏漏洞和輸出層、協議層等所有涉及數據安全的漏洞,確保APP里那些可能導致帳號泄露的漏洞被全部檢測出。
② 操作系統漏洞檢測程序的原理
360漏洞補丁來自微軟,正版window自帶window update能直接從微軟獲取補丁修補漏洞。盜版window沒有window update功能,只能用360。
③ 如何去檢測漏洞
360安全衛士沒有負面新聞的情況下,可以相信它,一切漏洞,讓它去補,只補重要的,選擇性的可補可不補,不是漏洞補全就好,該補得補上就行了
④ 伺服器漏洞檢測怎麼做
伺服器漏洞掃描分為:
1、內網掃描:掃描伺服器代碼漏洞等。
2、外網掃描:掃描目前市場已知漏洞等。
3、社會工程學掃描:排除人為的安全隱患因素。
一般需要專業的人員進行操作的,非專業的告訴你怎麼檢測可能也不知道怎麼操作。推薦找一家專業的公司來搞。
⑤ 漏洞掃描,哪些方法可以用來發現目標它們各有什麼優缺點
源代碼掃描
通過檢查程序中不符合安全規則的文件結構、命名規則、函數、堆棧指針等,進而發現程序中可能隱含的安全缺陷。
優缺點:
這種漏洞分析技術需要熟練掌握編程語言,並預先定義出不安全代碼的審查規則,通過表達式匹配的方法檢查源程序代碼。
由於程序運行時是動態變化的,如果不考慮函數調用的參數和調用環境,不對源代碼進行詞法分析和語法分析,就沒有辦法准確地把握程序的語義,因此這種方法不能發現程序動態運行過程中的安全漏洞。
反匯編掃描
反匯編掃描對於不公開源代碼的程序來說往往是最有效的發現安全漏洞的辦法。分析反匯編代碼需要有豐富的經驗,也可以使用輔助工具來幫助簡化這個過程,但不可能有一種完全自動的工具來完成這個過程。
優缺點:
通過反匯編來尋找系統漏洞的好處是,從理論上講,不論多麼復雜的問題總是可以通過反匯編來解決。它的缺點也是顯然的,這種方法費時費力,對人員的技術水平要求很高,同樣不能檢測到程序動態運行過程中產生的安全漏洞。
環境錯誤注入
由程序執行是一個動態過程這個特點,不難看出靜態的代碼掃描是不完備的。
優缺點:
環境錯誤注入是一種比較成熟的軟體測試方法,這種方法在協議安全測試等領域中都已經得到了廣泛的應用。軟體環境錯誤注入分析還依賴於操作系統中已知的安全缺陷,也就是說,對一個軟體進行錯誤注入分析時,要充分考慮到操作系統本身所存在的漏洞,這些操作系統中的安全缺陷可能會影響到軟體本身的安全。
⑥ 怎麼檢測網站漏洞啊
檢測漏洞的話,現在主要是注入,滲透等。有在線檢測的網站(憶思平台不知道還能用吧),工具的話啊d或者明小子都可以一定程度上檢測安全性。如果你是網站管理員,最好把默認的一些路徑改一下,比如資料庫路徑,用戶上傳的默認路徑,最重要的是改掉默認的管理員密碼,盡可能的復雜一些。
⑦ 手機應用軟體漏洞檢測方法有哪些
1、根據愛內測的安全檢測平台,平台採用靜態、動態方式對應用程序進行分析,並最終將分析結果存入資料庫,並實現一鍵生成報告的功能;
2、還有就是人工分析技術。是由專業安全人員接收到用戶提交的待檢測應用後,先對其進行安裝、運行和試用,通過在試用過程中,逐步掌握該應用的特點,並通過自己的專業經驗,來圈定檢測重點。人工專業檢測在涵蓋基礎檢測和深度檢測的全部檢測項的同時,兼顧側重點檢測,給予應用更全面、更專業、更貼合應用的量身打造的檢測服務。
⑧ 怎麼檢查系統漏洞
有以下四種檢測技術:
1、基於應用的檢測技術。
它採用被動的、非破壞性的辦法檢查應用軟體包的設置,發現安全漏洞。
2、基於主機的檢測技術。
它採用被動的、非破壞性的辦法對系統進行檢測。通常,它涉及到系統的內核、文件的屬性、操作系統的補丁等。這種技術還包括口令解密、把一些簡單的口令剔除。因此,這種技術可以非常准確地定位系統的問題,發現系統的漏洞。它的缺點是與平台相關,升級復雜。
3、基於目標的漏洞檢測技術。
它採用被動的、非破壞性的辦法檢查系統屬性和文件屬性,如資料庫、注冊號等。通過消息文摘演算法,對文件的加密數進行檢驗。這種技術的實現是運行在一個閉環上,不斷地處理文件、系統目標、系統目標屬性,然後產生檢驗數,把這些檢驗數同原來的檢驗數相比較。一旦發現改變就通知管理員。
基於目標的漏洞檢測技術。它採用被動的、非破壞性的辦法檢查系統屬性和文件屬性,如資料庫、注冊號等。通過消息文摘演算法,對文件的加密數進行檢驗。這種技術的實現是運行在一個閉環上,不斷地處理文件、系統目標、系統目標屬性,然後產生檢驗數,把這些檢驗數同原來的檢驗數相比較。一旦發現改變就通知管理員。
4、基於網路的檢測技術。
採用積極的、非破壞性的辦法來檢驗系統是否有可能被攻擊崩潰。它利用了一系列的腳本模擬對系統進行攻擊的行為,然後對結果進行分析。它還針對已知的網路漏洞進行檢驗。網路檢測技術常被用來進行穿透實驗和安全審計。這種技術可以發現一系列平台的漏洞,也容易安裝。但是,它可能會影響網路的性能。
⑨ 注入漏洞的檢測方法
目前比較准確的檢測注入漏洞的方法是進行網站漏洞掃描,推薦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語句之前,對其長度進行一下判斷,如果超過規定的長度,就彈出錯誤,中止頁面執行並返回到指定的頁面。當然還可以借鑒一些優秀源碼中的過濾方法。總之,注入漏洞是可以避免的,即使出現了注入點,只要我們分析出其出現的原因,也就能很容易地將其修補了!
⑩ 安全漏洞的檢查方法
建立安全模型
1、熟悉軟體功能、功能實現,配置等;
如:IIS的虛擬目錄、腳本映射;
2、根據功能,分析安全需求,建立安全模型;
IIS外掛,文件類型識別,目錄正確識別;目錄限制;
外掛的特點;許可權不是在文件對象上,需要自己識別文件,所以需要識別出同一個文件的所有文件名;
3、根據安全需求,分析編程應注意的地方,重點檢查。
IIS要對../進行檢測,連接文件的處理,識別出正確的目錄、文件名;編程介面完全按介面實現; 1、通讀原代碼;
2、安全需求裡面重點需要檢測的地方;
3、搜索容易有問題的函數調用,如strcpy、strcat、*printf、free、strncpy等;
4、常見一些編程問題;一些變數類型,如長度變數用int,注意一些函數非直接返回賦值問題等,一些邊界條件,記數從0開始還是從1開始。
5、分析緩沖區使用的代碼;
6、輸入輸出合法檢測;
7、編程介面調用;了解操作系統、基本文件、進程調用等的特性;
8、數據結構;
9、安全領域的最小原則; 1、測試;
(1)、熟悉輸入輸出;
(2)、根據需要編寫測試程序;
(3)、輸入輸出各種特殊情況測試,特殊字元、長串;
(4)、安全需求需要檢測的一些條件測試;
2、反匯編分析;
(1)、閱讀理解反匯編代碼;
(2)、安全需求檢測的代碼分析;
(3)、調用介面代碼分析;
(4)、sub esp,xxx 代碼分析緩沖;
(5)、strcpy、strcat、*printf、free、strncpy等調用分析;
(6)、輸入輸出檢測;
3、跟蹤調試;
(1)、異常的攔截分析;
(2)、一些字元串的流向,讀寫斷點; 1、分析總結各種漏洞、漏洞原因、編程問題,補丁修補方法,編程怎麼避免。
2、對漏洞歸納分類,全面考慮;