滲透測試之小白的常見web漏洞總結(上)

扶蘇゜發表於2020-10-06

概述
滲透測試其實就是一個攻防對抗的過程,所謂知己知彼,才能百戰百勝。

如今的網站基本都有防護措施,大企業或大單位因為網站眾多,一般都會選擇大型防火牆作為保護措施,比如深信服、天融信等等,小單位或單個網站通常會選擇D盾、安全狗或開源的安全軟體作為保護措施,一些常見的開源waf有:OpenResty 、ModSecurity、NAXSI、WebKnight、Shadow Daemon等等。

當然,裸跑的網站還是有的。

而這些防護措施都有對常見漏洞的防禦措施, 所以在實際的漏洞挖掘和利用過程中必須考慮這些問題,如何確定防護措施,如何對抗防護措施。

web常見漏洞一直是變化的,隔一段時間就會有新的漏洞被發現,但實戰中被利用的漏洞其實就那麼幾個,就像程式語言一樣,穩坐前三的永遠是c、c++、java。

總結一下常見漏洞:

弱口令、sql注入、檔案上傳、命令執行、任意檔案下載(目錄遍歷)、檔案包含、反序列化、敏感資訊洩漏、跨站請求偽造( CSRF 或者 XSRF)、 跨站指令碼漏洞(xss)、服務端請求偽造(ssrf)、xxe(外部實體注入)等等。

弱口令(弱密碼)
通常所說的弱口令是指常用的一些密碼(比如123456)和一些應用程式的預設密碼,但實際上任何有規律的密碼都可以稱作弱密碼,可能隨著機器學習的發展,大多數密碼都可以稱作弱密碼,因為人設定密碼的規律是有跡可循的。

對弱口令的防護措施:
防火牆:
在這裡插入圖片描述
安全狗:
在這裡插入圖片描述
弱口令破解:
對弱口令破解需要考慮兩個方面,一是防護措施,二是字典。當然,如果是瀏覽器弱口令破解,還需要考慮驗證碼。

一般方法:

1.手動測試常見密碼永遠不過時。

2.有防護措施:採取分段、延時爆破 +動態ip代理。,比如:

3.瀏覽器弱口令破解,使用bp爆破,驗證碼可以使用reCAPTCHAR外掛嘗試繞過,動態ip可以使用fakeip外掛模擬,延時功能可以通過Instruder options設定,如下:
在這裡插入圖片描述
sql注入:
本來想著sql注入漏洞現在應該很少了,但實際情況是還是普遍存在,只不過能直接使用sqlmap跑出來的確實不多。

對sql注入的防護措施:
防火牆:
在這裡插入圖片描述
D盾:在這裡插入圖片描述
應對措施:

1.延時或延時+動態代理還是基本方法,起碼保證不會被禁。

2.sqlmap自帶的指令碼基本上都不行了,找網上新出的指令碼。

3.也可以自己使用bp的intruder模組進行fuzz,尋找沒被過濾的字元,編寫指令碼。
檔案上傳
檔案上傳的危害自不必說,上傳點一般在管理後臺中,當然也有在公共頁面的。

檔案上傳的防護措施:
防火牆、D盾、安全狗:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
應對措施:
檔案上傳的繞過方法網上一搜有很多(比如upload-labs的各種方法、繞防火牆的各種方法(雖然很多已經過時),可能還有些沒有公開的方法,總結一下:

1.常規的繞過方法:修改檔案字尾(大小寫、檔案別名等等)、修改檔名(檔名加分號、引號等等)、修改檔案內容(比如圖片馬)、修改請求包結構等等。

2.結合伺服器解析漏洞:IIS、apache、nginx的特定版本都有對應的解析漏洞。

3.利用檔案包含漏洞:如果有檔案包含漏洞,可以結合檔案包含漏洞,上傳馬。

4.利用元件漏洞:如果知道元件版本和名稱,可以網上找一下相應漏洞。

注:手動一個一個去試各種方法,的確很麻煩,可以試試burpsuit的上傳外掛upload-scanner(但本人覺得並不好用)。

遠端命令(程式碼)執行(命令注入)
通常是由於後端呼叫命令執行的函式,對前端資料驗證或過濾不嚴格導致的,php、java都存在這種漏洞,php5.2以後的版本已經預設禁用命令執行的函式了。

防護措施:
D盾和安全狗好像沒有對命令執行的防護,防火牆的我找到以下:在這裡插入圖片描述
測試方法:
1.手動測試

2.使用burpsuit,主動掃描可以掃描命令注入漏洞,或其他工具。在這裡插入圖片描述
目錄遍歷
目錄遍歷(任意檔案下載)漏洞不同於網站目錄瀏覽,此漏洞不僅僅可遍歷系統下web中的檔案,而且可以瀏覽或者下載到系統中的檔案,攻擊人員通過目錄遍歷攻擊可以獲取系統檔案及伺服器的配置檔案等等。一般來說,他們利用伺服器API、檔案標準許可權進行攻擊。嚴格來說,目錄遍歷攻擊並不是一種web漏洞,而是網站設計人員的設計“漏洞”。如果web設計者設計的web內容沒有恰當的訪問控制,允許http遍歷,攻擊者就可以訪問受限的目錄,並可以在web根目錄以外執行命令。

防護措施:
D盾,安全狗對此沒有防護,防火牆找到如下:

在這裡插入圖片描述
測試方法:
1.手動測試,常用payload:

linux:

http://www.xxxx.com/xxx.php?page=…/…/…/…/…/…/…/…/…/…/…/…/…/etc/passwd
windows:

http://www.xxxx.com/xxx.php?page=…\windows\win.ini
2.使用bp自帶掃描器(可能複雜一點的掃描不出來)。

3.如果以上方法不行,網上搜一下繞過方法,有很多。。。

相關文章