滲透測試上傳
1. 滲透工程師是做什麼的
滲透測試工程師課程-信息探測入門視頻課程.zip 免費下載
鏈接:https://pan..com/s/1XzCPgg0tiio5SZuFOSi3Aw
滲透測試,是為了證明網路防禦按照預期計劃正常運行而提供的一種機制。不妨假設,你的公司定期更新安全策略和程序,時時給系統打補丁,並採用了漏洞掃描器等工具,以確保所有補丁都已打上。如果你早已做到了這些,為什麼還要請外方進行審查或滲透測試呢?因為,滲透測試能夠獨立地檢查你的網路策略,換句話說,就是給你的系統安了一雙眼睛。而且,進行這類測試的,都是尋找網路系統安全漏洞的專業人士。
2. 什麼是滲透測試 滲透測試的方法
滲透測試 (penetration test)並沒有一個標準的定義,國外一些安全組織達成共識的通用說法是:滲透測試是通過模擬惡意黑客的攻擊方法,來評估計算機網路系統安全的一種評估方法。這個過程包括對系統的任何弱點、技術缺陷或漏洞的主動分析,這個分析是從一個攻擊者可能存在的位置來進行的,並且從這個位置有條件主動利用安全漏洞。
換句話來說,滲透測試是指滲透人員在不同的位置(比如從內網、從外網等位置)利用各種手段對某個特定網路進行測試,以期發現和挖掘系統中存在的漏洞,然後輸出滲透測試報告,並提交給網路所有者。網路所有者根據滲透人員提供的滲透測試報告,可以清晰知曉系統中存在的安全隱患和問題。
我們認為滲透測試還具有的兩個顯著特點是:滲透測試是一個漸進的並且逐步深入的過程。滲透測試是選擇不影響業務系統正常運行的攻擊方法進行的測試。
作為網路安全防範的一種新技術,對於網路安全組織具有實際應用價值。但要找到一家合適的公司實施滲透測試並不容易。
3. 網站滲透測試怎麼做
先看網站類型,安全性相對而已asp<aspx<php<jsp<cfm
看伺服器類型 windows還是 linux 還有 伺服器應用,windows分iis6 iis7等等 linux分apache和nginx 需要知道對於版本的漏洞 如 iis6解析漏洞 你網路,web伺服器解析漏洞大全
反正需要懂的知識蠻多的 ,你自學沒必要了,知識點 你可以網路下 知識點:
網站入侵學習入門到高手所有重點難點視頻推薦
當知識點學的差不多了,總體的方法差不多就是:
入侵網站,鎖定目標 識別程序 找oday oday不成功 掃後門 掃備份 無後門 無備份 找後台 找注入 無注入 弱口令 無弱口令 找圖片 掃編輯器 無編輯器 掃目錄本地文件包含~任意文件下載 xss亂打拿不下 就旁註 旁不下 掃埠 還不行就去社 社不了 就爆破還不行 去C段 ip埠入侵 C段搞不了 子域名下手 還不行字典問題,
後面就是 學精sql注入(知道原理去嘗試繞過waf),xss ,還有代碼審計 內網域滲透,msf,反正學無止盡 這個知識主要靠累計,其他的靠自己本事去繞waf(ids和cdn),挖xss,oday獲取突破點。
4. 想問一下大家都是怎麼做滲透測試的呢
這個要根據個人的實際情況來決定的,比如你先要去了解什麼是滲透測試:
1、滲透測試屬於信息安全行業,准確的說是網路計算機/IT行業
2、現在你知道了它的行業屬性,那麼你是否具備一些這個行業的知識呢?
3、具備的話學習起來比較簡單,直接去學習滲透測試實戰就行,不具備接著往下看
4、現在知道它行業屬性,你大概就能清楚需要些什麼樣的基礎知識了;下面是我從非計算機網路相關專業的同學想要學習滲透測試必須掌握的知識。
5、前期入門大概需要掌握或者說了解以下知識點:
1)了解基本的網路知識,例如什麼是IP地址(63.62.61.123)去掉點是扣扣學習群,IP地址的基本概念、IP段劃分、什麼是A段、B段、C段等2)廣域網、區域網、相關概念和IP地址劃分范圍。
3)埠的基本概念?埠的分類?
4)域名的基本概念、什麼是URL、了解TCP/IP協議、
5)了解開放式通信系統互聯參考模型(OSI)
6)了解http(超文本傳輸協議)協議概念、工作原理
7)了解WEB的靜態頁面和WEB動態頁面,B/S和C/S結構
8)了解常見的伺服器、例如、Windows server2003、Linux、UNIX等
9)了解常見的資料庫、MySQL、Mssql、、Access、Oracle、db2等
10)了解基本的網路架構、例如:Linux + Apache + MySQL + php
11)了解基本的Html語言,就是打開網頁後,在查看源碼裡面的Html語言
12)了解一種基本的腳本語言、例如PHP或者asp,jsp,cgi等
然後你想學習入門,需要學習以下最基礎的知識:
1、開始入門學習路線
1)深入學習一種資料庫語言,建議從MySQL資料庫或者SQL Server資料庫、簡單易學且學會了。
其他資料庫都差不多會了。
2)開始學習網路安全漏洞知識、SQL注入、XSS跨站腳本漏洞、CSRF、解析漏洞、上傳漏洞、命令執行、弱口令、萬能密碼、文件包含漏洞、本地溢出、遠程溢出漏洞等等
)工具使用的學習、御劍、明小子、啊D、穿山甲(Pangolin)、Sqlmap、burpsuite抓包工具等等
2、Google hacker 語法學習
3、漏洞利用學習、SQL注入、XSS、上傳、解析漏洞等
4、漏洞挖掘學習
5、想成為大牛的話、以上都是皮毛中的皮毛,但前提是以上的皮毛都是最基礎的。
6、Linux系統命令學習、kali Linux 裡面的工具學習、Metesploit學習
7、你也可以找一些扣扣群去和大佬交流,比如上面的IP去掉點就是,裡面有很多的教程。
8、沒事多逛逛安全論壇、看看技術大牛的文章、漏洞分析文章等
5. 什麼是滲透測試如何做滲透測試
滲透測試,是為了證明網路防禦按照預期計劃正常運行而提供的一種機制。不妨假設,你的公司定期更新安全策略和程序,時時給系統打補丁,並採用了漏洞掃描器等工具,以確保所有補丁都已打上。如果你早已做到了這些,為什麼還要請外方進行審查或滲透測試呢?因為,滲透測試能夠獨立地檢查你的網路策略,換句話說,就是給你的系統安了一雙眼睛。而且,進行這類測試的,都是尋找網路系統安全漏洞的專業人士。
滲透測試一定要遵循軟體測試基本流程,要知道測試過程和目標特殊,在具體實施步驟上主要包含以下幾步:
1、明確目標
當測試人員拿到需要做滲透測試的項目時,首先確定測試需求,如測試是針對業務邏輯漏洞,還是針對人員管理許可權漏洞等;然後確定客戶要求滲透測試的范圍,如ip段、域名、整站滲透或者部分模塊滲透等;最後確定滲透測試規則,如能夠滲透到什麼程度,是確定漏洞為止還是繼續利用漏洞進行更進一步的測試,是否允許破壞數據、是否能夠提升許可權等。
2、收集信息
在信息收集階段要盡量收集關於項目軟體的各種信息。比如:對於一個Web應用程序,要收集腳本類型、伺服器類型、資料庫類型以及項目所用到的框架、開源軟體等。信息收集對於滲透測試來說非常重要,只要掌握目標程序足夠多的信息,才能更好地進行漏洞檢測。
信息收集的方式可分為以下2種:主動收集、被動收集。
3、掃描漏洞
在這個階段,綜合分析收集到的信息,藉助掃描工具對目標程序進行掃描,查找存在的安全漏洞。
4、驗證漏洞
在掃描漏洞階段,測試人員會得到很多關於目標程序的安全漏洞,但這些漏洞有誤報,需要測試人員結合實際情況,搭建模擬測試環境對這些安全漏洞進行驗證。被確認的安全漏洞才能被利用執行攻擊。
5、分析信息
經過驗證的安全漏洞就可以被利用起來向目標程序發起攻擊,但是不同的安全漏洞,攻擊機制不同,針對不同的安全漏洞需要進一步分析,制定一個詳細的攻擊計劃,這樣才能保證測試順利執行。
6、滲透攻擊
滲透攻擊實際是對目標程序進行的真正攻擊,為了達到測試的目的,像是獲取用戶賬號密碼、截取目標程序傳輸數據等。滲透測試是一次性測試,在攻擊完成後能夠執行清理工作。
7、整理信息
滲透攻擊完成後,整理攻擊所獲得的信息,為後邊編寫測試報告提供依據。
8、編寫報告
測試完成之後要編寫報告,闡述項目安全測試目標、信息收集方式、漏洞掃描工具以及漏洞情況、攻擊計劃、實際攻擊結果等。此外,還要對目標程序存在的漏洞進行分析,提供安全有效的解決辦法。
6. 網站安全滲透測試怎麼做
信息收集:
1、獲取域名的whois信息,獲取注冊者郵箱姓名電話等。
2、查詢伺服器旁站以及子域名站點,因為主站一般比較難,所以先看看旁站有沒有通用性的cms或者其他漏洞。
3、查看伺服器操作系統版本,web中間件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞。
4、查看IP,進行IP地址埠掃描,對響應的埠進行漏洞探測,比如 rsync,心臟出血,mysql,ftp,ssh弱口令等。
5、掃描網站目錄結構,看看是否可以遍歷目錄,或者敏感文件泄漏,比如php探針。
6、google hack 進一步探測網站的信息,後台,敏感文件。
漏洞掃描:
開始檢測漏洞,如XSS,XSRF,sql注入,代碼執行,命令執行,越權訪問,目錄讀取,任意文件讀取,下載,文件包含, 遠程命令執行,弱口令,上傳,編輯器漏洞,暴力破解等。
漏洞利用:
利用以上的方式拿到webshell,或者其他許可權。
許可權提升:
提權伺服器,比如windows下mysql的udf提權。
日誌清理:
結束滲透測試工作需要做的事情,抹除自己的痕跡。
總結報告及修復方案:
報告上包括:
1、對本次網站滲透測試的一個總概括,發現幾個漏洞,有幾個是高危的漏洞,幾個中危漏洞,幾個低危漏洞。
2、對漏洞進行詳細的講解,比如是什麼類型的漏洞,漏洞名稱,漏洞危害,漏洞具體展現方式,修復漏洞的方法。
7. 滲透測試的步驟有哪些
滲透測試步驟
明確目標
· 確定范圍:測試目標的范圍,ip,域名,內外網。
· 確定規則:能滲透到什麼程度,時間?能否修改上傳?能否提權等。
· 確定需求:web應用的漏洞、業務邏輯漏洞、人員許可權管理漏洞等等。
信息收集
方式:主動掃描,開放搜索等。
開放搜索:利用搜索引擎獲得,後台,未授權頁面,敏感url等。
漏洞探索
利用上一步中列出的各種系統,應用等使用相應的漏洞。
方法:
1.漏掃,awvs,IBM appscan等。
2.結合漏洞去exploit-db等位置找利用。
3.在網上尋找驗證poc。
內容:
系統漏洞:系統沒有及時打補丁
Websever漏洞:Websever配置問題
Web應用漏洞:Web應用開發問題
其它埠服務漏洞:各種21/8080(st2)/7001/22/3389
通信安全:明文傳輸,token在cookie中傳送等。
漏洞驗證
將上一步中發現的有可能可以成功利用的全部漏洞都驗證一遍,結合實際情況,搭建模擬環境進行試驗。成功後再應用於目標中。
自動化驗證:結合自動化掃描工具提供的結果
手工驗證,根據公開資源進行驗證
試驗驗證:自己搭建模擬環境進行驗證
登陸猜解:有時可以嘗試猜解一下登陸口的賬號密碼等信息
業務漏洞驗證:如發現業務漏洞,要進行驗證
公開資源的利用
信息分析
為下一步實施滲透做准備:
精準打擊:准備好上一步探測到的漏洞的exp,用來精準打擊
繞過防禦機制:是否有防火牆等設備,如何繞過
定製攻擊路徑:最佳工具路徑,根據薄弱入口,高內網許可權位置,最終目標
繞過檢測機制:是否有檢測機制,流量監控,殺毒軟體,惡意代碼檢測等
攻擊代碼:經過試驗得來的代碼,包括不限於xss代碼,sql注入語句等
獲取所需
實施攻擊:根據前幾步的結果,進行攻擊
獲取內部信息:基礎設施
進一步滲透:內網入侵,敏感目標
持續性存在:一般我們對客戶做滲透不需要。rookit,後門,添加管理賬號,駐扎手法等
清理痕跡:清理相關日誌,上傳文件等
信息整理
整理滲透工具:整理滲透過程中用到的代碼,poc,exp等
整理收集信息:整理滲透過程中收集到的一切信息
整理漏洞信息:整理滲透過程中遇到的各種漏洞,各種脆弱位置信息
形成報告
按需整理:按照之前第一步跟客戶確定好的范圍,需求來整理資料,並將資料形成報告
補充介紹:要對漏洞成因,驗證過程和帶來危害進行分析
修補建議:當然要對所有產生的問題提出合理高效安全的解決辦法
8. 如何進行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等。
9. 如何對網站進行漏洞掃描及滲透測試
注冊一個賬號,看下上傳點,等等之類的。
用google找下注入點,格式是
Site:XXX.com inurl:asp|php|aspx|jsp
最好不要帶 www,因為不帶的話可以檢測二級域名。
大家都知道滲透測試就是為了證明網路防禦按照預期計劃正常運行而提供的一種機制,而且夠獨立地檢查你的網路策略,一起來看看網站入侵滲透測試的正確知識吧。
簡單枚舉一些滲透網站一些基本常見步驟:
一 、信息收集
要檢測一個站首先應先收集信息如whois信息、網站真實IP、旁註、C段網站、伺服器系統版本、容器版本、程序版本、資料庫類型、二級域名、防火牆、維護者信息有哪些等等
二、收集目標站注冊人郵箱
1.用社工庫里看看有沒有泄露密碼,然後嘗試用泄露的密碼進行登錄後台。2.用郵箱做關鍵詞,丟進搜索引擎。3.利用搜索到的關聯信息找出其他郵進而得到常用社交賬號。4.社工找出社交賬號,裡面或許會找出管理員設置密碼的習慣 。5.利用已有信息生成專用字典。6.觀察管理員常逛哪些非大眾性網站,看看有什麼東西
三、判斷出網站的CMS
1:查找網上已曝光的程序漏洞並對其滲透2:如果開源,還能下載相對應的源碼進行代碼審計。
3.搜索敏感文件、目錄掃描
四、常見的網站伺服器容器。
IIS、Apache、nginx、Lighttpd、Tomcat
五、注入點及漏洞
1.手動測試查看有哪些漏洞
2.看其是否有注入點
3.使用工具及漏洞測試平台測試這個有哪些漏洞可利用
六、如何手工快速判斷目標站是windows還是linux伺服器?
Linux大小寫敏感,windows大小寫不敏感。
七、如何突破上傳檢測?
1、寬字元注入
2、hex編碼繞過
3、檢測繞過
4、截斷繞過
八、若查看到編輯器
應查看編輯器的名稱版本,然後搜索公開的漏洞
九、上傳大馬後訪問亂碼
瀏覽器中改編碼。
十、審查上傳點的元素
有些站點的上傳文件類型的限制是在前端實現的,這時只要增加上傳類型就能突破限制了。
掃目錄,看編輯器和Fckeditor,看下敏感目錄,有沒有目錄遍及,
查下是iis6,iis5.iis7,這些都有不同的利用方法
Iis6解析漏洞
Iis5遠程溢出,
Iis7畸形解析
Phpmyadmin
萬能密碼:』or』='or』等等
等等。
每個站都有每個站的不同利用方法,自己滲透多點站可以多總結點經驗。
還有用google掃後台都是可以的。
10. 滲透測試應該怎麼做呢
01、信息收集
1、域名、IP、埠
域名信息查詢:信息可用於後續滲透
IP信息查詢:確認域名對應IP,確認IP是否真實,確認通信是否正常
埠信息查詢:NMap掃描,確認開放埠
發現:一共開放兩個埠,80為web訪問埠,3389為windows遠程登陸埠,嘿嘿嘿,試一下
發現:是Windows Server 2003系統,OK,到此為止。
2、指紋識別
其實就是網站的信息。比如通過可以訪問的資源,如網站首頁,查看源代碼:
看看是否存在文件遍歷的漏洞(如圖片路徑,再通過…/遍歷文件)
是否使用了存在漏洞的框架(如果沒有現成的就自己挖)
02、漏洞掃描
1、主機掃描
Nessus
經典主機漏掃工具,看看有沒有CVE漏洞:
2、Web掃描
AWVS(Acunetix | Website Security Scanner)掃描器
PS:掃描器可能會對網站構成傷害,小心謹慎使用。
03、滲透測試
1、弱口令漏洞
漏洞描述
目標網站管理入口(或資料庫等組件的外部連接)使用了容易被猜測的簡單字元口令、或者是默認系統賬號口令。
滲透測試
① 如果不存在驗證碼,則直接使用相對應的弱口令字典使用burpsuite 進行爆破
② 如果存在驗證碼,則看驗證碼是否存在繞過、以及看驗證碼是否容易識別
風險評級:高風險
安全建議
① 默認口令以及修改口令都應保證復雜度,比如:大小寫字母與數字或特殊字元的組合,口令長度不小於8位等
② 定期檢查和更換網站管理口令
2、文件下載(目錄瀏覽)漏洞
漏洞描述
一些網站由於業務需求,可能提供文件查看或下載的功能,如果對用戶查看或下載的文件不做限制,則惡意用戶就能夠查看或下載任意的文件,可以是源代碼文件、敏感文件等。
滲透測試
① 查找可能存在文件包含的漏洞點,比如js,css等頁面代碼路徑
② 看看有沒有文件上傳訪問的功能
③ 採用…/來測試能否誇目錄訪問文件
風險評級:高風險
安全建議
① 採用白名單機制限制伺服器目錄的訪問,以及可以訪問的文件類型(小心被繞過)
② 過濾【./】等特殊字元
③ 採用文件流的訪問返回上傳文件(如用戶頭像),不要通過真實的網站路徑。
示例:tomcat,默認關閉路徑瀏覽的功能:
<param-name>listings</param-name>
<param-value>false</param-value>
3、任意文件上傳漏洞
漏洞描述
目標網站允許用戶向網站直接上傳文件,但未對所上傳文件的類型和內容進行嚴格的過濾。
滲透測試
① 收集網站信息,判斷使用的語言(PHP,ASP,JSP)
② 過濾規則繞過方法:文件上傳繞過技巧
風險評級:高風險
安全建議
① 對上傳文件做有效文件類型判斷,採用白名單控制的方法,開放只允許上傳的文件型式;
② 文件類型判斷,應對上傳文件的後綴、文件頭、圖片類的預覽圖等做檢測來判斷文件類型,同時注意重命名(Md5加密)上傳文件的文件名避免攻擊者利用WEB服務的缺陷構造畸形文件名實現攻擊目的;
③ 禁止上傳目錄有執行許可權;
④ 使用隨機數改寫文件名和文件路徑,使得用戶不能輕易訪問自己上傳的文件。
4、命令注入漏洞
漏洞描述
目標網站未對用戶輸入的字元進行特殊字元過濾或合法性校驗,允許用戶輸入特殊語句,導致各種調用系統命令的web應用,會被攻擊者通過命令拼接、繞過黑名單等方式,在服務端運行惡意的系統命令。
滲透測試
風險評級:高風險
安全建議
① 拒絕使用拼接語句的方式進行參數傳遞;
② 盡量使用白名單的方式(首選方式);
③ 過濾危險方法、特殊字元,如:【|】【&】【;】【』】【"】等
5、SQL注入漏洞
漏洞描述
目標網站未對用戶輸入的字元進行特殊字元過濾或合法性校驗,允許用戶輸入特殊語句查詢後台資料庫相關信息
滲透測試
① 手動測試:判斷是否存在SQL注入,判斷是字元型還是數字型,是否需要盲注
② 工具測試:使用sqlmap等工具進行輔助測試
風險評級:高風險
安全建議
① 防範SQL注入攻擊的最佳方式就是將查詢的邏輯與其數據分隔,如Java的預處理,PHP的PDO
② 拒絕使用拼接SQL的方式
6、跨站腳本漏洞
漏洞描述
當應用程序的網頁中包含不受信任的、未經恰當驗證或轉義的數據時,或者使用可以創建 HTML或JavaScript 的瀏覽器 API 更新現有的網頁時,就會出現 XSS 缺陷。XSS 讓攻擊者能夠在受害者的瀏覽器中執行腳本,並劫持用戶會話、破壞網站或將用戶重定向到惡意站點。
三種XSS漏洞:
① 存儲型:用戶輸入的信息被持久化,並能夠在頁面顯示的功能,都可能存在存儲型XSS,例如用戶留言、個人信息修改等。
② 反射型:URL參數需要在頁面顯示的功能都可能存在反射型跨站腳本攻擊,例如站內搜索、查詢功能。
③ DOM型:涉及DOM對象的頁面程序,包括:document.URL、document.location、document.referrer、window.location等
滲透測試
存儲型,反射型,DOM型
風險評級:高風險
安全建議
① 不信任用戶提交的任何內容,對用戶輸入的內容,在後台都需要進行長度檢查,並且對【<】【>】【"】【』】【&】等字元做過濾
② 任何內容返回到頁面顯示之前都必須加以html編碼,即將【<】【>】【"】【』】【&】進行轉義。
7、跨站請求偽造漏洞
漏洞描述
CSRF,全稱為Cross-Site Request Forgery,跨站請求偽造,是一種網路攻擊方式,它可以在用戶毫不知情的情況下,以用戶的名義偽造請求發送給被攻擊站點,從而在未授權的情況下進行許可權保護內的操作,如修改密碼,轉賬等。
滲透測試
風險評級:中風險(如果相關業務極其重要,則為高風險)
安全建議
① 使用一次性令牌:用戶登錄後產生隨機token並賦值給頁面中的某個Hidden標簽,提交表單時候,同時提交這個Hidden標簽並驗證,驗證後重新產生新的token,並賦值給hidden標簽;
② 適當場景添加驗證碼輸入:每次的用戶提交都需要用戶在表單中填寫一個圖片上的隨機字元串;
③ 請求頭Referer效驗,url請求是否前部匹配Http(s)😕/ServerHost
④ 關鍵信息輸入確認提交信息的用戶身份是否合法,比如修改密碼一定要提供原密碼輸入
⑤ 用戶自身可以通過在瀏覽其它站點前登出站點或者在瀏覽器會話結束後清理瀏覽器的cookie;
8、內部後台地址暴露
漏洞描述
一些僅被內部訪問的地址,對外部暴露了,如:管理員登陸頁面;系統監控頁面;API介面描述頁面等,這些會導致信息泄露,後台登陸等地址還可能被爆破。
滲透測試
① 通過常用的地址進行探測,如login.html,manager.html,api.html等;
② 可以借用burpsuite和常規頁面地址字典,進行掃描探測
風險評級:中風險
安全建議
① 禁止外網訪問後台地址
② 使用非常規路徑(如對md5加密)
9、信息泄露漏洞
漏洞描述
① 備份信息泄露:目標網站未及時刪除編輯器或者人員在編輯文件時,產生的臨時文件,或者相關備份信息未及時刪除導致信息泄露。
② 測試頁面信息泄露:測試界面未及時刪除,導致測試界面暴露,被他人訪問。
③ 源碼信息泄露:目標網站文件訪問控制設置不當,WEB伺服器開啟源碼下載功能,允許用戶訪問網站源碼。
④ 錯誤信息泄露:目標網站WEB程序和伺服器未屏蔽錯誤信息回顯,頁面含有CGI處理錯誤的代碼級別的詳細信息,例如SQL語句執行錯誤原因,PHP的錯誤行數等。
⑤ 介面信息泄露:目標網站介面訪問控制不嚴,導致網站內部敏感信息泄露。
滲透測試
① 備份信息泄露、測試頁面信息泄露、源碼信息泄露,測試方法:使用字典,爆破相關目錄,看是否存在相關敏感文件
② 錯誤信息泄露,測試方法:發送畸形的數據報文、非正常的報文進行探測,看是否對錯誤參數處理妥當。
③ 介面信息泄露漏洞,測試方法:使用爬蟲或者掃描器爬取獲取介面相關信息,看目標網站對介面許可權是否合理
風險評級:一般為中風險,如果源碼大量泄漏或大量客戶敏感信息泄露。
安全建議
① 備份信息泄露漏洞:刪除相關備份信息,做好許可權控制
② 測試頁面信息泄露漏洞:刪除相關測試界面,做好許可權控制
③ 源碼信息泄露漏洞:做好許可權控制
④ 錯誤信息泄露漏洞:將錯誤信息對用戶透明化,在CGI處理錯誤後可以返回友好的提示語以及返回碼。但是不可以提示用戶出錯的代碼級別的詳細原因
⑤ 介面信息泄露漏洞:對介面訪問許可權嚴格控制
10、失效的身份認證
漏洞描述
通常,通過錯誤使用應用程序的身份認證和會話管理功能,攻擊者能夠破譯密碼、密鑰或會話令牌, 或者利用其它開發缺陷來暫時性或永久性冒充其他用戶的身份。
滲透測試
① 在登陸前後觀察,前端提交信息中,隨機變化的數據,總有與當前已登陸用戶進行綁定的會話唯一標識,常見如cookie
② 一般現在網站沒有那種簡單可破解的標識,但是如果是跨站認證,單點登錄場景中,可能為了開發方便而簡化了身份認證
風險評級:高風險
安全建議
① 使用強身份識別,不使用簡單弱加密方式進行身份識別;
② 伺服器端使用安全的會話管理器,在登錄後生成高度復雜的新隨機會話ID。會話ID不能在URL中,可以安全地存儲,在登出、閑置超時後使其失效。
11、失效的訪問控制
漏洞描述
未對通過身份驗證的用戶實施恰當的訪問控制。攻擊者可以利用這些缺陷訪問未經授權的功能或數據,例如:訪問其他用戶的帳戶、查看敏感文件、修改其他用戶的數據、更改訪問許可權等。
滲透測試
① 登入後,通過burpsuite 抓取相關url 鏈接,獲取到url 鏈接之後,在另一個瀏覽器打開相關鏈接,看能夠通過另一個未登入的瀏覽器直接訪問該功能點。
② 使用A用戶登陸,然後在另一個瀏覽器使用B用戶登陸,使用B訪問A獨有的功能,看能否訪問。
風險評級:高風險
安全建議
① 除公有資源外,默認情況下拒絕訪問非本人所有的私有資源;
② 對API和控制器的訪問進行速率限制,以最大限度地降低自動化攻擊工具的危害;
③ 當用戶注銷後,伺服器上的Cookie,JWT等令牌應失效;
④ 對每一個業務請求,都進行許可權校驗。
12、安全配置錯誤
漏洞描述
應用程序缺少適當的安全加固,或者雲服務的許可權配置錯誤。
① 應用程序啟用或安裝了不必要的功能(例如:不必要的埠、服務、網頁、帳戶或許可權)。
② 默認帳戶的密碼仍然可用且沒有更改。
③ 錯誤處理機制向用戶披露堆棧跟蹤或其他大量錯誤信息。
④ 對於更新的系統,禁用或不安全地配置最新的安全功能。
⑤ 應用程序伺服器、應用程序框架(如:Struts、Spring、ASP.NET)、庫文件、資料庫等沒有進行相關安全配置。
滲透測試
先對應用指紋等進行信息搜集,然後針對搜集的信息,看相關應用默認配置是否有更改,是否有加固過;埠開放情況,是否開放了多餘的埠;
風險評級:中風險
安全建議
搭建最小化平台,該平台不包含任何不必要的功能、組件、文檔和示例。移除或不安裝不適用的功能和框架。在所有環境中按照標準的加固流程進行正確安全配置。
13、使用含有已知漏洞的組件
漏洞描述
使用了不再支持或者過時的組件。這包括:OS、Web伺服器、應用程序伺服器、資料庫管理系統(DBMS)、應用程序、API和所有的組件、運行環境和庫。
滲透測試
① 根據前期信息搜集的信息,查看相關組件的版本,看是否使用了不在支持或者過時的組件。一般來說,信息搜集,可通過http返回頭、相關錯誤信息、應用指紋、埠探測(Nmap)等手段搜集。
② Nmap等工具也可以用於獲取操作系統版本信息
③ 通過CVE,CNVD等平台可以獲取當前組件版本是否存在漏洞
風險評級:按照存在漏洞的組件的安全風險值判定當前風險。
安全建議
① 移除不使用的依賴、不需要的功能、組件、文件和文檔;
② 僅從官方渠道安全的獲取組件(盡量保證是最新版本),並使用簽名機制來降低組件被篡改或加入惡意漏洞的風險;
③ 監控那些不再維護或者不發布安全補丁的庫和組件。如果不能打補丁,可以考慮部署虛擬補丁來監控、檢測或保護。
詳細學習可參考: