A. 用Java Web實現記錄用戶輸入錯誤的賬號或口令的次數。
哈哈,看來我們是同學!!!這是我做的完整的LoginServlet.java的代碼,有點亂,不過看在同學的份上還是採納吧!
packageservlets;
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.util.Date;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.Cookie;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
{
longnow=0;
longlast=0;
longfirst=0;
protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=UTF-8");
PrintWriterout=response.getWriter();
Stringuid=request.getParameter("uid");
Stringpwd=request.getParameter("pwd");
if(first!=0&&(now-first)<60){
longnows=newDate().getTime()/1000;
if((nows-now)<60){
response.sendRedirect("err.html");
}
}else{
if(uid.equals("")&&pwd.equals("")){
response.sendRedirect("index.jsp");
return;
}elseif(!(uid.equals("guest")&&pwd.equals("1234567"))){
HttpSessionsession=request.getSession();
if(session.getAttribute("now")!=null){
if(last!=0){
first=last;
}
last=Long.parseLong(session.getAttribute("now").toString());
}
session.setAttribute("now",newDate().getTime()/1000);
now=Long.parseLong(session.getAttribute("now").toString());
if(first!=0){
if((now-first)<60){
response.sendRedirect("err.html");
return;
}
}
response.sendRedirect("index.jsp");
}elseif(uid.equals("guest")&&pwd.equals("1234567")){
HttpSessionsession=request.getSession();
session.setAttribute("load",newDate().getTime()/1000);
Cookiecookie=newCookie("login","guest");
cookie.setMaxAge(600);
response.addCookie(cookie);
cookie.setPath("/");
response.sendRedirect("admin");
}
}
}
@Override
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}
@Override
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}
@Override
publicStringgetServletInfo(){
return"Shortdescription";
}
}
B. 目標web應用表單存在口令猜測攻擊怎麼解決
WEB程序的Form文件夾目錄許可權不足,需將Form文件賦予Everyone或Users帳號完全控制許可權。
C. 用易查分製作web查詢系統後,怎樣設置開門口令
通過對易查分開門口令的設置,用戶在訪問查詢主頁時,首先會提示需要輸入開門口令的頁面,只有正確輸入開門口令後才能進入到查詢頁面,否則將無法進入查詢,也無法查看到查詢頁面任何信息,大大提升任務發起方的私密性。
易查分設置開門口令步驟:
進入易查分後,選擇系統設置-開門口令,即可對開門口令進行設置;
D. 如何進行Web滲透測試
什麼是滲透測試?
滲透測試,是滲透測試工程師完全模擬黑客可能使用的攻擊技術和漏洞發現技術,對目標網路、主機、應用的安全作深入的探測,發現系統最脆弱的環節。
如何進行Web滲透測試?
完整web滲透測試框架當需要測試的web應用數以千計,就有必要建立一套完整的安全測試框架,流程的最高目標是要保證交付給客戶的安全測試服務質量。
1、立項:項目建立,時間安排,人力分配,目標制定,廠商介面人確定;
系統分析&威脅分析:針對具體的web應用,分析系統架構、使用的組件、對外提供的介面等,以STRIDE為威脅模型進行對應的安全威脅分析,輸出安全威脅分析表,重點關注top3威脅;
制定測試用例:根據威脅分析的結果制定對應的測試用例,測試用例按照模板輸出,具備可執行性;
測試執行&漏洞挖掘:測試用例執行&發散測試,挖掘對應的安全問題or漏洞;
問題修復&回歸測試:指導客戶應用開發方修復安全問題or漏洞,並進行回歸測試,確保安全問題or漏洞得到修復,並且沒有引入新的安全問題;
項目總結評審:項目過程總結,輸出文檔評審,相關文檔歸檔。
2、Web應用的滲透測試流程
主要分為3個階段,分別是:信息收集→漏洞發現→漏洞利用,下面仔細分析一下各個階段流程:
一、信息收集
在信息收集階段,我們需要盡量多的收集關於目標web應用的各種信息,比如:腳本語言的類型、伺服器的類型、目錄的結構、使用的開源軟體、資料庫類型、所有鏈接頁面,用到的框架等
腳本語言的類型:常見的腳本語言的類型包括:php、asp、aspx、jsp等
測試方法:
1 爬取網站所有鏈接,查看後綴
2 直接訪問一個不存在頁面後面加不同的後綴測試
3 查看robots.txt,查看後綴
伺服器的類型:常見的web伺服器包括:apache、tomcat、IIS、ngnix等
測試方法:
1 查看header,判斷伺服器類型
2 根據報錯信息判斷
3 根據默認頁面判斷
目錄的結構:了解更多的目錄,可能發現更多的弱點,如:目錄瀏覽、代碼泄漏等。
測試方法
1 使用字典枚舉目錄
2 使用爬蟲爬取整個網站,或者使用google等搜索引擎獲取
3 查看robots.txt是否泄漏
使用的開源軟體:我們如果知道了目標使用的開源軟體,我們可以查找相關的軟體的漏洞直接對網站進行測試。
測試方法
指紋識別(網路上有很多開源的指紋識別工具)
資料庫類型:對於不同的資料庫有不同的測試方法。
測試方法
1 使應用程序報錯,查看報錯信息
2 掃描伺服器的資料庫埠(沒做NAT且防火牆不過濾時有效)
所有鏈接頁面:這個跟前面的獲取目錄結構類似,但是這個不只是獲取網站的所有功能頁面,有時候還可以獲取到管理員備份的源碼。
測試方法
1 使用字典枚舉頁面
2 使用爬蟲爬取整個網站,或者使用google等搜索引擎獲取
3 查看robots.txt是否泄漏
用到的框架:很多網站都利用開源的框架來快速開發網站,所以收集網站的框架信息也是非常關鍵的。
測試方法
指紋識別(網路上有很多開源的指紋識別工具)
二、漏洞發現
在這個階段我們在做測試的時候要對症下葯,不能盲目的去掃描,首先要確定目標應用是否使用的是公開的開源軟體,開源框架等、然後在做深一度的漏洞掃描。
關於開源軟體的漏洞發現
開源的軟體:常見的開源軟體有wordpress、phpbb、dedecms等
開源的框架:常見的開源框架有Struts2、 Spring MVC、ThinkPHP等
中間件伺服器:常見的中間件伺服器有jboss、tomcat、Weblogic等
資料庫服務:常見的資料庫服務mssql、mysql、oracle、redis、sybase、MongoDB、DB2等
對於開源軟體的測試方法
1 通過指紋識別軟體判斷開源軟體的版本信息,針對不同的版本信息去開放的漏洞資料庫查找相應版本的漏洞進行測試
2 對於默認的後台登錄頁、資料庫服務埠認證等入口可以進行簡單的暴力破解、默認口令嘗試等操作
3 使用開源的漏洞發現工具對其進行漏洞掃描,如:WPScan
關於自主開發的應用
手動測試:這個階段,我們需要手工測試所有與用戶交互的功能,比如:留言、登入、下單、退出、退貨、付款等操作
軟體掃描:使用免費的軟體掃描,如:appscan、wvs、netsparker,burp等
可能存在的漏洞
Owasp關鍵點
代碼安全之上傳文件
代碼安全之文件包含
代碼安全之SSRF
邏輯漏洞之密碼重置
邏輯漏洞之支付漏洞
邏輯漏洞之越權訪問
平台安全之中間件安全
三、漏洞利用
針對不同的弱點有不同的漏洞利用方式,需要的知識點也比較多。一般這個階段包括兩種方式,一種是手工測試,一種是工具測試
手工測試
手工測試是通過客戶端或伺服器訪問目標服務,手工向目標程序發送特殊的數據,包括有效的和無效的輸入,觀察目標的狀態、對各種輸入的反應,根據結果來發現問題的漏洞檢測技術。手工測試不需要額外的輔助工具,可由測試者獨立完成,實現起來比較簡單。但這種方法高度依賴於測試者,需要測試者對目標比較了解。手工測試可用於Web應用程序、瀏覽器及其他需要用戶交互的程序。
這種方式對於有特殊過濾等操作,或者網路上沒有成型的利用工具的時候可以使用。
工具測試
網路上有很多好用的免費利用工具,比如針對sql注入的sqlmap、針對軟體漏洞的matesploit等。
E. web在線考試系統步驟
Web在線考試系統組織一場在線考試的步驟如下:
一、注冊賬號並登錄
提醒:填寫正確的手機號碼和郵箱,因為後期很多的服務提醒都是根據這個來發送的。
手機號碼後期可以更改,但是郵箱的話是唯一識別ID,後續不可以變更的。
特別說明:
如果是多選題,考試雲還支持按比例得分,或者漏選固定得分;
同樣發布成績,考試雲支持考完即發布,也可以固定時間統一發布,還可以手動發布。
步驟四:一鍵發布,邀請考生參考
支持:微信掃碼、鏈接、郵箱通知等多種方式,通知考生參考。
以上就是考試雲web在線考試系統的所有基礎操作步驟了,希望能幫到你。
F. 比較好的web安全掃描工具有哪些
隨著網站業務所承載內容的日益增多且重要性日益增強,網站本身的價值也越來越大,隨之由網站漏洞帶來的安全性問題也愈發嚴峻。新開通網站、新增專欄的准入質量評估,網站系統日常運行狀況的檢查預防和風險掌控,這些已成為各行業每年安全大檢查中的關鍵要素。作為具體落實定期檢查工作的安全人員,也急需選擇一款優秀的網站掃描產品進行高效徹底的Web脆弱性評估檢查,而如何選擇一款真正實用的產品成為一個比較糾結的難題。
常見Web掃描方案的優劣勢
目前常見的支持Web掃描解決方案的產品有很多,大家比較熟悉的有集成Web掃描模塊的多合一系統掃描器,網上可免費下載的開源掃描器軟體以及近幾年剛嶄露頭角的獨立Web掃描器產品等,都可以進行一定程度的Web安全掃描和漏洞發現。那麼面對如此琳琅滿目的選擇時,大家如何細致區分辨識其差異,就需嚴格立足於實際需要,最終做出最佳的判斷。
多合一的系統掃描器,通常會集主機掃描、配置核查、Web掃描及弱口令掃描於一身,是一款強大全面的多功能產品。但多合一的高度封裝導致其在進行安全掃描時,除不能分配全部計算資源在Web掃描方面,掃描引擎自身還要兼顧到全方位的權衡與調優。反觀目標Web應用呈現的種類多樣性、規模龐大性和運行特殊性,在面對動輒上萬、十萬甚至百萬級別網頁數量的網站時,這種多合一產品就表現得差強人意,使用起來有種牛拉火車的感覺;同時,高效執行掃描評估就必須具備高並發的網頁鏈接爬蟲識別和Web插件交互邏輯判斷能力,這一現實的沖突導致多合一掃描器在Web掃描及性能體驗方面效果平平,優勢不突出。
網上開源的Web掃描器軟體,盡管完全免費並可以發現一些基本的漏洞信息,但其在第一時間發現新爆Web漏洞和漏洞趨勢跟蹤分析、修補方面,完全不具備後期支撐能力。而且在人性化設計及低學習門檻方面也存在太多先天的不足,其性能與穩定性更是與商業軟體相差甚遠。
面對綜上同類產品,困惑於Web掃描場景需求種種局限的我們,很欣喜地看到了近幾年聲名鵲起的Web掃描器產品。它作為一款自動化評估類工具,依據制定的策略對Web應用系統進行URL深度發現並全面掃描,尋找出Web應用真實存在的安全漏洞,如跨站點腳本、SQL注入,命令執行、目錄遍歷和不安全的伺服器配置。Web掃描器產品可以通過主動生成統計分析報告來幫助我們正確了解Web應用漏洞的詳細分布、數量和風險優先順序,並對發現的安全漏洞提出相應有力的改進意見供後續修補參考,是幫助我們高效徹底地進行Web脆弱性評估檢查的堅實利器。
Web掃描器的三個誤區
針對現有市面上諸多品牌的Web掃描器,大家在評價它們孰優孰劣時時常過於片面極端,主要表現為三個認識誤區。
誤區1:多就是好!
認為漏洞庫條目多,檢查出來的漏洞多就是好。Web掃描器面對龐大繁多、千差萬別的應用系統,為提升檢測性能,多採用高效率的Web通用插件,以一掃多,其不再局限於某個專門應用系統,深層次聚合歸並,盡可能多地發現多種應用系統的同類漏洞。同時,對於掃描出來的非誤報漏洞,若同屬某一頁面不同參數所致的相同漏洞,歸納整理,讓最終呈現的漏洞報表簡約而不簡單,避免數量冗餘、雜亂無章。故若以毫無插件歸並能力,僅靠大量專門Web系統插件、羅列各類漏洞列表數量多來博取贊許的Web掃描器,其本質存在太多的不專業性。
誤區2:快就是好!
認為掃描速度快耗時短的就是好。網站規模日趨復雜,日常檢查時我們期待Web掃描器能有更高效率地完成掃描任務,這點無可厚非,但檢查的本質是要最大限度地提前發現足夠多的漏洞,並第一時間制定後續相應的修補計劃。故在面對同一目標站點時,Web掃描器若能在單位時間內檢測出來的有效存在漏洞數越多,這個快才是真的好。
誤區3:小就是好!
認為掃描過程中對目標業務影響小就是好!這句話本身也沒有問題,只要Web掃描器在執行掃描過程中,對目標系統負載響應和網路鏈路帶寬佔用,影響足夠小,也就是我們常說的「無損掃描」,它就具備了一款優秀Web掃描器應有的先決條件。但是,這必須是在能最大限度發現Web漏洞的前提下才能考慮的關鍵因素,脫離這個產品本質,就本末倒置了。
五個基本評優標准
那麼,評優一款Web掃描器,我們該從何處著手?具體的判斷標准有哪些呢?
全——識別種類繁多的Web應用,集成最全的Web通用插件,通過全面識別網站結構和內容,逐一判斷每一種漏洞可能性,換句話說,漏洞掃描的檢測率一定要高,漏報率務必低,最終才能輸出全面詳盡的掃描報告。這就要求其在Web應用識別方面,支持各類Web語言類型(php、asp、.net、html)、應用系統類型(門戶網站、電子政務、論壇、博客、網上銀行)、應用程序類型(IIS、Apache、Tomcat)、第三方組件類型(Struts2、WebLogic、WordPress)等;插件集成方面,支持國際標准漏洞分類OWASP TOP 10和WASC插件分類模板,允許自定義掃描插件模板,第一時間插件更新速度等。
准——較高的漏洞准確性是Web掃描器權威的象徵,可視化分析可助用戶准確定位漏洞、分析漏洞。而誤報是掃描類產品不能迴避的話題。Web掃描器通過通用插件與目標站點任一URL頁面進行邏輯交互,通過可視化的漏洞跟蹤技術,精準判斷和定位漏洞,並提供易讀易懂的詳細整改分析報告。除此之外,一款好的Web掃描器還要更具人性化,在漏洞發現後,允許掃描者進行手工、自動的漏洞批量驗證,進而雙重保障較高的准確性結果。
快——快速的掃描速度,才能在面對越來越大的網站規模,越發頻繁的網站檢查時游刃有餘,進度保障。一款快速的Web掃描器除了有強勁馬力的掃描引擎,高達百萬/天的掃描速度,還要具備彈性靈活的集群掃描能力,任意增添掃描節點,輕松應對可能苛刻的掃描周期時間要求。
穩——穩定可靠的運行過程,對目標環境近乎零影響的Web掃描器,才能在諸行業大面積投入使用,特別是一些對業務影響要求苛刻的行業會更受青睞,畢竟沒有人能夠接受一款評估類產品,會對目標造成額外的損傷。市面上現在已有一些Web掃描器產品,其通過周期探尋目標系統,網路鏈路,自身性能負載等機制,依據目標環境的負載動態變化而自動調節掃描參數,從而保障掃描過程的足夠穩定和幾乎零影響。此外,隨著網站規模,檢查范圍的不斷擴大,保證持續穩定的掃描執行和統計評估,盡量避免掃描進度的半途而廢,也提出了較高的可靠性運行要求。
易——人性化的界面配置,低成本的報表學習和強指導性修補建議。尤其是漏洞分布詳情和場景重現方面,市面上大多數Web掃描器的報表都需要專業安全人員的二次解讀後,普通的安全運維檢查人員才能看懂,才知道長達百頁報表給出的重要建議和下一步的具體修補措施,這無疑給使用者造成了較高的技術門檻,那麼如何解決此易讀、易用問題,就成為評定其優劣與否的一個重要指標。
總之,一款優秀的Web掃描器產品,它需要嚴格恪守五字核心方針,全、准、快、穩、易,做到全方位均衡,這樣才能做到基本優秀。同時,隨著網站檢查訴求的日益多元化,它若能附帶一些差異化特性,滿足大家不同場景的網站安全運維掃描要求,如網站基本信息搜集,漏洞全過程時間軸跟蹤,逐步可視化的漏洞驗證和場景重現,自動修補直通車等,定會大大增加該款掃描器的評優力度。
G. 微信群發,檢測僵屍粉怎麼獲取webwxgetcontact
買軟體清僵屍
H. 如何進行Web漏洞掃描
Web漏洞掃描通常採用兩種策略,第一種是被動式策略,第二種是主動式策略。所謂被動式策略就是基於主機之上,對系統中不合適的設置、脆弱的口令以及其他與安全規則抵觸的對象進行檢查;而主動式策略是基於網路的,它通過執行一些腳本文件模擬對系統進行攻擊的行為並記錄系統的反應,從而發現其中的漏洞。利用被動式策略的掃描稱為系統安全掃描,利用主動式的策略掃描稱為網路安全掃描。 Web漏洞掃描有以下四種檢測技術: 1.基於應用的檢測技術。它採用被動的、非破壞性的辦法檢查應用軟體包的設置,發現安全漏洞。 2.基於主機的檢測技術。它採用被動的、非破壞性的辦法對系統進行檢測。通常,它涉及到系統的內核、文件的屬性、操作系統的補丁等。這種技術還包括口令解密、把一些簡單的口令剔除。因此,這種技術可以非常准確地定位系統的問題,發現系統的漏洞。它的缺點是與平台相關,升級復雜。 3.基於目標的漏洞檢測技術。它採用被動的、非破壞性的辦法檢查系統屬性和文件屬性,如資料庫、注冊號等。通過消息文摘演算法,對文件的加密數進行檢驗。這種技術的實現是運行在一個閉環上,不斷地處理文件、系統目標、系統目標屬性,然後產生檢驗數,把這些檢驗數同原來的檢驗數相比較。一旦發現改變就通知管理員。 4. 基於網路的檢測技術。它採用積極的、非破壞性的辦法來檢驗系統是否有可能被攻擊崩潰。它利用了一系列的腳本模擬對系統進行攻擊的行為,然後對結果進行分析。它還針對已知的網路漏洞進行檢驗。網路檢測技術常被用來進行穿透實驗和安全審記。這種技術可以發現一系列平台的漏洞,也容易安裝。但是,它可能會影響網路的性能。 網路Web漏洞掃描 在獲得目標主機TCP/IP埠和其對應的網路訪問服務的相關信息後,與網路漏洞掃描系統提供的漏洞庫進行匹配,如果滿足匹配條件,則視為漏洞存在。此外,通過模擬黑客的進攻手法,對目標主機系統進行攻擊性的安全漏洞掃描,如測試弱勢口令等,也是掃描模塊的實現方法之一。如果模擬攻擊成功,則視為漏洞存在。 在匹配原理上,網路漏洞掃描器採用的是基於規則的匹配技術,即根據安全專家對網路系統安全漏洞、黑客攻擊案例的分析和系統管理員關於網路系統安全配置的實際經驗,形成一套標準的系統漏洞庫,然後再在此基礎之上構成相應的匹配規則,由程序自動進行系統漏洞掃描的分析工作。 所謂基於規則是基於一套由專家經驗事先定義的規則的匹配系統。例如,在對TCP80埠的掃描中,如果發現/cgi-bin/phf/cgi-bin/Count.cgi,根據專家經驗以及CGI程序的共享性和標准化,可以推知該WWW服務存在兩個CGI漏洞。同時應當說明的是,基於規則的匹配系統有其局限性,因為作為這類系統的基礎的推理規則一般都是根據已知的安全漏洞進行安排和策劃的,而對網路系統的很多危險的威脅是來自未知的安全漏洞,這一點和PC殺毒很相似。 這種Web漏洞掃描器是基於瀏覽器/伺服器(B/S)結構。它的工作原理是:當用戶通過控制平台發出了掃描命令之後,控制平台即向掃描模塊發出相應的掃描請求,掃描模塊在接到請求之後立即啟動相應的子功能模塊,對被掃描主機進行掃描。通過分析被掃描主機返回的信息進行判斷,掃描模塊將掃描結果返回給控制平台,再由控制平台最終呈現給用戶。 另一種結構的掃描器是採用插件程序結構。可以針對某一具體漏洞,編寫對應的外部測試腳本。通過調用服務檢測插件,檢測目標主機TCP/IP不同埠的服務,並將結果保存在信息庫中,然後調用相應的插件程序,向遠程主機發送構造好的數據,檢測結果同樣保存於信息庫,以給其他的腳本運行提供所需的信息,這樣可提高檢測效率。如,在針對某FTP服務的攻擊中,可以首先查看服務檢測插件的返回結果,只有在確認目標主機伺服器開啟FTP服務時,對應的針對某FTP服務的攻擊腳本才能被執行。採用這種插件結構的掃描器,可以讓任何人構造自己的攻擊測試腳本,而不用去了解太多掃描器的原理。這種掃描器也可以用做模擬黑客攻擊的平台。採用這種結構的掃描器具有很強的生命力,如著名的Nessus就是採用這種結構。這種網路Web漏洞掃描器是基於客戶端/伺服器(C/S)結構,其中客戶端主要設置伺服器端的掃描參數及收集掃描信息。
I. web漏洞攻擊有哪些
一、SQL注入漏洞
SQL注入攻擊(SQL Injection),簡稱注入攻擊、SQL注入,被廣泛用於非法獲取網站控制權,是發生在應用程序的資料庫層上的安全漏洞。在設計程序,忽略了對輸入字元串中夾帶的SQL指令的檢查,被資料庫誤認為是正常的SQL指令而運行,從而使資料庫受到攻擊,可能導致數據被竊取、更改、刪除,以及進一步導致網站被嵌入惡意代碼、被植入後門程序等危害。
通常情況下,SQL注入的位置包括:
(1)表單提交,主要是POST請求,也包括GET請求;
(2)URL參數提交,主要為GET請求參數;
(3)Cookie參數提交;
(4)HTTP請求頭部的一些可修改的值,比如Referer、User_Agent等;
(5)一些邊緣的輸入點,比如.mp3文件的一些文件信息等。
常見的防範方法
(1)所有的查詢語句都使用資料庫提供的參數化查詢介面,參數化的語句使用參數而不是將用戶輸入變數嵌入到SQL語句中。當前幾乎所有的資料庫系統都提供了參數化SQL語句執行介面,使用此介面可以非常有效的防止SQL注入攻擊。
(2)對進入資料庫的特殊字元(』」<>&*;等)進行轉義處理,或編碼轉換。
(3)確認每種數據的類型,比如數字型的數據就必須是數字,資料庫中的存儲欄位必須對應為int型。
(4)數據長度應該嚴格規定,能在一定程度上防止比較長的SQL注入語句無法正確執行。
(5)網站每個數據層的編碼統一,建議全部使用UTF-8編碼,上下層編碼不一致有可能導致一些過濾模型被繞過。
(6)嚴格限制網站用戶的資料庫的操作許可權,給此用戶提供僅僅能夠滿足其工作的許可權,從而最大限度的減少注入攻擊對資料庫的危害。
(7)避免網站顯示SQL錯誤信息,比如類型錯誤、欄位不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。
(8)在網站發布之前建議使用一些專業的SQL注入檢測工具進行檢測,及時修補這些SQL注入漏洞。
二、跨站腳本漏洞
跨站腳本攻擊(Cross-site scripting,通常簡稱為XSS)發生在客戶端,可被用於進行竊取隱私、釣魚欺騙、竊取密碼、傳播惡意代碼等攻擊。
XSS攻擊使用到的技術主要為HTML和Javascript,也包括VBScript和ActionScript等。XSS攻擊對WEB伺服器雖無直接危害,但是它藉助網站進行傳播,使網站的使用用戶受到攻擊,導致網站用戶帳號被竊取,從而對網站也產生了較嚴重的危害。
XSS類型包括:
(1)非持久型跨站:即反射型跨站腳本漏洞,是目前最普遍的跨站類型。跨站代碼一般存在於鏈接中,請求這樣的鏈接時,跨站代碼經過服務端反射回來,這類跨站的代碼不存儲到服務端(比如資料庫中)。上面章節所舉的例子就是這類情況。
(2)持久型跨站:這是危害最直接的跨站類型,跨站代碼存儲於服務端(比如資料庫中)。常見情況是某用戶在論壇發貼,如果論壇沒有過濾用戶輸入的Javascript代碼數據,就會導致其他瀏覽此貼的用戶的瀏覽器會執行發貼人所嵌入的Javascript代碼。
(3)DOM跨站(DOM XSS):是一種發生在客戶端DOM(Document Object Model文檔對象模型)中的跨站漏洞,很大原因是因為客戶端腳本處理邏輯導致的安全問題。
常用的防止XSS技術包括:
(1)與SQL注入防護的建議一樣,假定所有輸入都是可疑的,必須對所有輸入中的script、iframe等字樣進行嚴格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入介面,也包括HTTP請求中的Cookie中的變數,HTTP請求頭部中的變數等。
(2)不僅要驗證數據的類型,還要驗證其格式、長度、范圍和內容。
(3)不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。
(4)對輸出的數據也要檢查,資料庫里的值有可能會在一個大網站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。
(5)在發布應用程序之前測試所有已知的威脅。
三、弱口令漏洞
弱口令(weak password) 沒有嚴格和准確的定義,通常認為容易被別人(他們有可能對你很了解)猜測到或被破解工具破解的口令均為弱口令。設置密碼通常遵循以下原則:
(1)不使用空口令或系統預設的口令,這些口令眾所周之,為典型的弱口令。
(2)口令長度不小於8個字元。
(3)口令不應該為連續的某個字元(例如:AAAAAAAA)或重復某些字元的組合(例如:tzf.tzf.)。
(4)口令應該為以下四類字元的組合,大寫字母(A-Z)、小寫字母(a-z)、數字(0-9)和特殊字元。每類字元至少包含一個。如果某類字元只包含一個,那麼該字元不應為首字元或尾字元。
(5)口令中不應包含本人、父母、子女和配偶的姓名和出生日期、紀念日期、登錄名、E-mail地址等等與本人有關的信息,以及字典中的單詞。
(6)口令不應該為用數字或符號代替某些字母的單詞。
(7)口令應該易記且可以快速輸入,防止他人從你身後很容易看到你的輸入。
(8)至少90天內更換一次口令,防止未被發現的入侵者繼續使用該口令。
四、HTTP報頭追蹤漏洞
HTTP/1.1(RFC2616)規范定義了HTTP TRACE方法,主要是用於客戶端通過向Web伺服器提交TRACE請求來進行測試或獲得診斷信息。當Web伺服器啟用TRACE時,提交的請求頭會在伺服器響應的內容(Body)中完整的返回,其中HTTP頭很可能包括Session Token、Cookies或其它認證信息。攻擊者可以利用此漏洞來欺騙合法用戶並得到他們的私人信息。該漏洞往往與其它方式配合來進行有效攻擊,由於HTTP TRACE請求可以通過客戶瀏覽器腳本發起(如XMLHttpRequest),並可以通過DOM介面來訪問,因此很容易被攻擊者利用。
防禦HTTP報頭追蹤漏洞的方法通常禁用HTTP TRACE方法。
五、Struts2遠程命令執行漏洞
ApacheStruts是一款建立Java web應用程序的開放源代碼架構。Apache Struts存在一個輸入過濾錯誤,如果遇到轉換錯誤可被利用注入和執行任意Java代碼。
網站存在遠程代碼執行漏洞的大部分原因是由於網站採用了Apache Struts Xwork作為網站應用框架,由於該軟體存在遠程代碼執高危漏洞,導致網站面臨安全風險。CNVD處置過諸多此類漏洞,例如:「GPS車載衛星定位系統」網站存在遠程命令執行漏洞(CNVD-2012-13934);Aspcms留言本遠程代碼執行漏洞(CNVD-2012-11590)等。
修復此類漏洞,只需到Apache官網升級Apache Struts到最新版本:http://struts.apache.org
六、文件上傳漏洞
文件上傳漏洞通常由於網頁代碼中的文件上傳路徑變數過濾不嚴造成的,如果文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件後綴以及文件類型,攻擊者可通過 Web 訪問的目錄上傳任意文件,包括網站後門文件(webshell),進而遠程式控制制網站伺服器。
因此,在開發網站及應用程序過程中,需嚴格限制和校驗上傳的文件,禁止上傳惡意代碼的文件。同時限制相關目錄的執行許可權,防範webshell攻擊。
七、私有IP地址泄露漏洞
IP地址是網路用戶的重要標示,是攻擊者進行攻擊前需要了解的。獲取的方法較多,攻擊者也會因不同的網路情況採取不同的方法,如:在區域網內使用Ping指令,Ping對方在網路中的名稱而獲得IP;在Internet上使用IP版的QQ直接顯示。最有效的辦法是截獲並分析對方的網路數據包。攻擊者可以找到並直接通過軟體解析截獲後的數據包的IP包頭信息,再根據這些信息了解具體的IP。
針對最有效的「數據包分析方法」而言,就可以安裝能夠自動去掉發送數據包包頭IP信息的一些軟體。不過使用這些軟體有些缺點,譬如:耗費資源嚴重,降低計算機性能;訪問一些論壇或者網站時會受影響;不適合網吧用戶使用等等。現在的個人用戶採用最普及隱藏IP的方法應該是使用代理,由於使用代理伺服器後,「轉址服務」會對發送出去的數據包有所修改,致使「數據包分析」的方法失效。一些容易泄漏用戶IP的網路軟體(QQ、MSN、IE等)都支持使用代理方式連接Internet,特別是QQ使用「ezProxy」等代理軟體連接後,IP版的QQ都無法顯示該IP地址。雖然代理可以有效地隱藏用戶IP,但攻擊者亦可以繞過代理,查找到對方的真實IP地址,用戶在何種情況下使用何種方法隱藏IP,也要因情況而論。
八、未加密登錄請求
由於Web配置不安全,登陸請求把諸如用戶名和密碼等敏感欄位未加密進行傳輸,攻擊者可以竊聽網路以劫獲這些敏感信息。建議進行例如SSH等的加密後再傳輸。
九、敏感信息泄露漏洞
SQL注入、XSS、目錄遍歷、弱口令等均可導致敏感信息泄露,攻擊者可以通過漏洞獲得敏感信息。針對不同成因,防禦方式不同
十、CSRF
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
Web應用是指採用B/S架構、通過HTTP/HTTPS協議提供服務的統稱。隨著互聯網的廣泛使用,Web應用已經融入到日常生活中的各個方面:網上購物、網路銀行應用、證券股票交易、政府行政審批等等。在這些Web訪問中,大多數應用不是靜態的網頁瀏覽,而是涉及到伺服器側的動態處理。此時,如果Java、PHP、ASP等程序語言的編程人員的安全意識不足,對程序參數輸入等檢查不嚴格等,會導致Web應用安全問題層出不窮。
本文根據當前Web應用的安全情況,列舉了Web應用程序常見的攻擊原理及危害,並給出如何避免遭受Web攻擊的建議。
Web應用漏洞原理
Web應用攻擊是攻擊者通過瀏覽器或攻擊工具,在URL或者其它輸入區域(如表單等),向Web伺服器發送特殊請求,從中發現Web應用程序存在的漏洞,從而進一步操縱和控制網站,查看、修改未授權的信息。
1.1 Web應用的漏洞分類
1、信息泄露漏洞
信息泄露漏洞是由於Web伺服器或應用程序沒有正確處理一些特殊請求,泄露Web伺服器的一些敏感信息,如用戶名、密碼、源代碼、伺服器信息、配置信息等。
造成信息泄露主要有以下三種原因:
–Web伺服器配置存在問題,導致一些系統文件或者配置文件暴露在互聯網中;
–Web伺服器本身存在漏洞,在瀏覽器中輸入一些特殊的字元,可以訪問未授權的文件或者動態腳本文件源碼;
–Web網站的程序編寫存在問題,對用戶提交請求沒有進行適當的過濾,直接使用用戶提交上來的數據。
2、目錄遍歷漏洞
目錄遍歷漏洞是攻擊者向Web伺服器發送請求,通過在URL中或在有特殊意義的目錄中附加「../」、或者附加「../」的一些變形(如「..\」或「..//」甚至其編碼),導致攻擊者能夠訪問未授權的目錄,以及在Web伺服器的根目錄以外執行命令。
3、命令執行漏洞
命令執行漏洞是通過URL發起請求,在Web伺服器端執行未授權的命令,獲取系統信息,篡改系統配置,控制整個系統,使系統癱瘓等。
命令執行漏洞主要有兩種情況:
–通過目錄遍歷漏洞,訪問系統文件夾,執行指定的系統命令;
–攻擊者提交特殊的字元或者命令,Web程序沒有進行檢測或者繞過Web應用程序過濾,把用戶提交的請求作為指令進行解析,導致執行任意命令。
4、文件包含漏洞
文件包含漏洞是由攻擊者向Web伺服器發送請求時,在URL添加非法參數,Web伺服器端程序變數過濾不嚴,把非法的文件名作為參數處理。這些非法的文件名可以是伺服器本地的某個文件,也可以是遠端的某個惡意文件。由於這種漏洞是由PHP變數過濾不嚴導致的,所以只有基於PHP開發的Web應用程序才有可能存在文件包含漏洞。
5、SQL注入漏洞
SQL注入漏洞是由於Web應用程序沒有對用戶輸入數據的合法性進行判斷,攻擊者通過Web頁面的輸入區域(如URL、表單等) ,用精心構造的SQL語句插入特殊字元和指令,通過和資料庫交互獲得私密信息或者篡改資料庫信息。SQL注入攻擊在Web攻擊中非常流行,攻擊者可以利用SQL注入漏洞獲得管理員許可權,在網頁上加掛木馬和各種惡意程序,盜取企業和用戶敏感信息。
6、跨站腳本漏洞
跨站腳本漏洞是因為Web應用程序時沒有對用戶提交的語句和變數進行過濾或限制,攻擊者通過Web頁面的輸入區域向資料庫或HTML頁面中提交惡意代碼,當用戶打開有惡意代碼的鏈接或頁面時,惡意代碼通過瀏覽器自動執行,從而達到攻擊的目的。跨站腳本漏洞危害很大,尤其是目前被廣泛使用的網路銀行,通過跨站腳本漏洞攻擊者可以冒充受害者訪問用戶重要賬戶,盜竊企業重要信息。
根據前期各個漏洞研究機構的調查顯示,SQL注入漏洞和跨站腳本漏洞的普遍程度排名前兩位,造成的危害也更加巨大。
1.2 SQL注入攻擊原理
SQL注入攻擊是通過構造巧妙的SQL語句,同網頁提交的內容結合起來進行注入攻擊。比較常用的手段有使用注釋符號、恆等式(如1=1)、使用union語句進行聯合查詢、使用insert或update語句插入或修改數據等,此外還可以利用一些內置函數輔助攻擊。
通過SQL注入漏洞攻擊網站的步驟一般如下:
第一步:探測網站是否存在SQL注入漏洞。
第二步:探測後台資料庫的類型。
第三步:根據後台資料庫的類型,探測系統表的信息。
第四步:探測存在的表信息。
第五步:探測表中存在的列信息。
第六步:探測表中的數據信息。
1.3 跨站腳本攻擊原理
跨站腳本攻擊的目的是盜走客戶端敏感信息,冒充受害者訪問用戶的重要賬戶。跨站腳本攻擊主要有以下三種形式:
1、本地跨站腳本攻擊
B給A發送一個惡意構造的Web URL,A點擊查看了這個URL,並將該頁面保存到本地硬碟(或B構造的網頁中存在這樣的功能)。A在本地運行該網頁,網頁中嵌入的惡意腳本可以A電腦上執行A持有的許可權下的所有命令。
2、反射跨站腳本攻擊
A經常瀏覽某個網站,此網站為B所擁有。A使用用戶名/密碼登錄B網站,B網站存儲下A的敏感信息(如銀行帳戶信息等)。C發現B的站點包含反射跨站腳本漏洞,編寫一個利用漏洞的URL,域名為B網站,在URL後面嵌入了惡意腳本(如獲取A的cookie文件),並通過郵件或社會工程學等方式欺騙A訪問存在惡意的URL。當A使用C提供的URL訪問B網站時,由於B網站存在反射跨站腳本漏洞,嵌入到URL中的惡意腳本通過Web伺服器返回給A,並在A瀏覽器中執行,A的敏感信息在完全不知情的情況下將發送給了C。
3、持久跨站腳本攻擊
B擁有一個Web站點,該站點允許用戶發布和瀏覽已發布的信息。C注意到B的站點具有持久跨站腳本漏洞,C發布一個熱點信息,吸引用戶閱讀。A一旦瀏覽該信息,其會話cookies或者其它信息將被C盜走。持久性跨站腳本攻擊一般出現在論壇、留言簿等網頁,攻擊者通過留言,將攻擊數據寫入伺服器資料庫中,瀏覽該留言的用戶的信息都會被泄漏。
Web應用漏洞的防禦實現
對於以上常見的Web應用漏洞漏洞,可以從如下幾個方面入手進行防禦:
1)對 Web應用開發者而言
大部分Web應用常見漏洞,都是在Web應用開發中,開發者沒有對用戶輸入的參數進行檢測或者檢測不嚴格造成的。所以,Web應用開發者應該樹立很強的安全意識,開發中編寫安全代碼;對用戶提交的URL、查詢關鍵字、HTTP頭、POST數據等進行嚴格的檢測和限制,只接受一定長度范圍內、採用適當格式及編碼的字元,阻塞、過濾或者忽略其它的任何字元。通過編寫安全的Web應用代碼,可以消除絕大部分的Web應用安全問題。
2) 對Web網站管理員而言
作為負責網站日常維護管理工作Web管理員,應該及時跟蹤並安裝最新的、支撐Web網站運行的各種軟體的安全補丁,確保攻擊者無法通過軟體漏洞對網站進行攻擊。
除了軟體本身的漏洞外,Web伺服器、資料庫等不正確的配置也可能導致Web應用安全問題。Web網站管理員應該對網站各種軟體配置進行仔細檢測,降低安全問題的出現可能。
此外,Web管理員還應該定期審計Web伺服器日誌,檢測是否存在異常訪問,及早發現潛在的安全問題。
3)使用網路防攻擊設備
前兩種為事前預防方式,是比較理想化的情況。然而在現實中,Web應用系統的漏洞還是不可避免的存在:部分Web網站已經存在大量的安全漏洞,而Web開發者和網站管理員並沒有意識到或發現這些安全漏洞。由於Web應用是採用HTTP協議,普通的防火牆設備無法對Web類攻擊進行防禦,因此可以使用IPS入侵防禦設備來實現安全防護。
H3C IPS Web攻擊防禦
H3C IPS入侵防禦設備有一套完整的Web攻擊防禦框架,能夠及時發現各種已經暴露的和潛在的Web攻擊。下圖為對於Web攻擊的總體防禦框架。
圖1:Web攻擊防禦框架,參見:http://blog.csdn.net/moshenglv/article/details/53439579
H3C IPS採用基於特徵識別的方式識別並阻斷各種攻擊。IPS設備有一個完整的特徵庫,並可定期以手工與自動的方式對特徵庫進行升級。當網路流量進入IPS後,IPS首先對報文進行預處理,檢測報文是否正確,即滿足協議定義要求,沒有錯誤欄位;如果報文正確,則進入深度檢測引擎。該引擎是IPS檢測的核心模塊,對通過IPS設備的Web流量進行深層次的分析,並與IPS攻擊庫中的特徵進行匹配,檢測Web流量是否存在異常;如果發現流量匹配了攻擊特徵,IPS則阻斷網路流量並上報日誌;否則,網路流量順利通過。
此Web攻擊防禦框架有如下幾個特點:
1) 構造完整的Web攻擊檢測模型,准確識別各種Web攻擊
針對Web攻擊的特點,考慮到各種Web攻擊的原理和形態,在不同漏洞模型之上開發出通用的、層次化的Web攻擊檢測模型,並融合到特徵庫中。這些模型抽象出Web攻擊的一般形態,對主流的攻擊能夠准確識別,使得模型通用化。
2) 檢測方式靈活,可以准確識別變形的Web攻擊
在實際攻擊中,攻擊者為了逃避防攻擊設備的檢測,經常對Web攻擊進行變形,如採用URL編碼技術、修改參數等。H3C根據Web應用漏洞發生的原理、攻擊方式和攻擊目標,對攻擊特徵進行了擴展。即使攻擊者修改攻擊參數、格式、語句等內容,相同漏洞原理下各種變形的攻擊同樣能夠被有效阻斷。這使得IPS的防禦范圍擴大,防禦的靈活性也顯著增強,極大的減少了漏報情況的出現。
3) 確保對最新漏洞及技術的跟蹤,有效阻止最新的攻擊
隨著Web攻擊出現的頻率日益增高,其危害有逐步擴展的趨勢。這對IPS設備在防禦的深度和廣度上提出了更高的要求,不僅要能夠防禦已有的Web攻擊,更要有效的阻止最新出現的、未公布的攻擊。目前,H3C已經建立起一套完整的攻防試驗環境,可以及時發現潛在Web安全漏洞。同時還在繼續跟蹤最新的Web攻擊技術和工具,及時更新Web攻擊的特徵庫,第一時間發布最新的Web漏洞應對措施,確保用戶的網路不受到攻擊。
4) 保證正常業務的高效運行
檢測引擎是IPS整個設備運行的關鍵,該引擎使用了高效、准確的檢測演算法,對通過設備的流量進行深層次的分析,並通過和攻擊特徵進行匹配,檢測流量是否存在異常。如果流量沒有匹配到攻擊特徵,則允許流量通過,不會妨礙正常的網路業務,在准確防禦的同時保證了正常業務的高效運行。
結束語
互聯網和Web技術廣泛使用,使Web應用安全所面臨的挑戰日益嚴峻,Web系統時時刻刻都在遭受各種攻擊的威脅,在這種情況下,需要制定一個完整的Web攻擊防禦解決方案,通過安全的Web應用程序、Web伺服器軟體、Web防攻擊設備共同配合,確保整個網站的安全。任何一個簡單的漏洞、疏忽都會造成整個網站受到攻擊,造成巨大損失。此外 ,Web攻擊防禦是一個長期持續的工作,隨著Web技術的發展和更新,Web攻擊手段也不斷發展,針對這些最新的安全威脅,需要及時調整Web安全防護策略,確保Web攻擊防禦的主動性,使Web網站在一個安全的環境中為企業和客戶服務。
原文鏈接: