11、WEB漏洞-必懂知識點講解
前言
本章節將講解各種 WEB 層面上的有那些漏洞型別,具體漏洞的危害等級,以簡要的影響範圍測試進行例項分析,思維導圖中的漏洞也是後面我們將要學習到的各個知識點,其中針對漏洞的形成原理,如何發現,如何利用將是本章節學習的重點內容
思維導圖
實際應用:CTF,SRC,紅藍對抗,實戰等
以上漏洞危害情況
SQL注入
- 攻擊者未經授權可以訪問資料庫中的資料,盜取使用者的隱私以及個人資訊,造成使用者的資訊洩露。
- 可以對資料庫的資料進行增加或刪除操作,例如私自新增或刪除管理員賬號。
- 如果網站目錄存在寫入許可權,可以寫入網頁木馬。攻擊者進而可以對網頁進行篡改,釋出一些違法資訊等。
- 經過提權等步驟,伺服器最高許可權被攻擊者獲取。攻擊者可以遠端控制伺服器,安裝後門,得以修改或控制作業系統。
XSS
- 竊取管理員帳號或Cookie,入侵者可以冒充管理員的身份登入後臺。使得入侵者具有惡意操縱後臺資料的能力,包括讀取、更改、新增、刪除一些資訊。
- 竊取使用者的個人資訊或者登入帳號,對網站的使用者安全產生巨大的威脅。例如冒充使用者身份進行各種操作
- 網站掛馬。先將惡意攻擊程式碼嵌入到Web應用程式之中。當用戶瀏覽該掛馬頁面時,使用者的計算機會被植入木馬
- 傳送廣告或者垃圾資訊。攻擊者可以利用XSS漏洞植入廣告,或者傳送垃圾資訊,嚴重影響到使用者的正常使用
XXE
- 讀取任意檔案
- 執行系統命令
- 探測內網埠
- 攻擊內網網站
檔案上傳
- 如果 Web應用程式存在上傳漏洞 , 攻擊者甚至可以將一個webshell直接上傳到伺服器上
檔案包含(可能含有檔案包含的漏洞:inurl:php?file=)
- web伺服器的檔案被外界瀏覽導致資訊洩露
- 指令碼被任意執行,可能會篡改網站、執行非法操作、攻擊其他網站
檔案讀取
- 通過任意檔案下載,可以下載伺服器的任意檔案,web業務的程式碼,伺服器和系統的具體配置資訊,也可以下載資料庫的配置資訊,以及對內網的資訊探測等等
CSRF(使用者請求偽造)
- 以受害者名義傳送郵件,發訊息,盜取受害者的賬號,甚至購買商品,虛擬貨幣轉賬,修改受害者的網路配置(比如修改路由器DNS、重置路由器密碼)等等
- 個人隱私洩露、機密資料洩露、使用者甚至企業的財產安全
SSRF (伺服器端請求偽造)
- 可以對外網、伺服器所在內網、本地進行埠掃描,獲取一些服務的banner 資訊
- 攻擊執行在內網或本地的應用程式
- 攻擊內外網的 web 應用,主要是使用 GET 引數就可以實現的攻擊(如:Struts2,sqli)
- 下載內網資源(如:利用file協議讀取本地檔案等)
- 進行跳板
- 無視cdn
- 利用Redis未授權訪問,HTTP CRLF注入實現getshell
反序列化
- 遠端攻擊者利用漏洞可在未經任何身份驗證的伺服器主機上執行任意程式碼,被攻擊者間接控制伺服器
程式碼執行
- 程式碼執行漏洞造成的原理是由於伺服器端沒有針對執行函式做過濾,導致在沒有指定絕對路徑的情況下就執行命令,可能會允許攻擊者通過改變 $PATH 或程式執行環境的其他方面來執行一個惡意構造的程式碼。造成程式碼執行相關的函式分別是:eval、assert函式
- 暴露伺服器資訊
- 木馬植入
- 敏感檔案暴露
- 可能升級為命令執行
邏輯漏洞
- 在提交訂單的時候抓取資料包或者直接修改前端程式碼,然後對訂單的金額任意修改。
- 黑客只需要抓取Response資料包便知道驗證碼是多少或直接繞過
- 有些業務的介面,因為缺少了對使用者的登陸憑證的較驗或者是驗證存在缺陷,導致黑客可以未經授權訪問這些敏感資訊甚至是越權操作
- 有些關鍵性的介面因為沒有做驗證或者其它預防機制,容易遭到列舉攻擊
- Cookie的效驗值過於簡單。有些web對於cookie的生成過於單一或者簡單,導致黑客可以對cookie的效驗值進行一個列舉
- 單純讀取記憶體值資料來當作使用者憑證
- 使用者修改密碼時,郵箱中會收到一個含有auth的連結,在有效期內使用者點選連結,即可進入重置密碼環節。而大部分網站對於auth的生成都是採用rand()函式,那麼這裡就存在一個問題了,Windows環境下rand()最大值為32768,所以這個auth的值是可以被列舉的
未授權訪問
- 敏感資訊洩露
命令執行
- 繼承Web服務程式的許可權去執行系統命令或讀寫檔案
- 反彈shell
- 控制整個網站甚至控制伺服器
- 進一步內網滲透
目錄遍歷
- 攻擊者通過訪問網站某一目錄時,該目錄沒有預設首頁檔案或沒有正確設定預設首頁檔案,將會把整個目錄結構列出來,將網站結構完全暴露給攻擊者; 攻擊者可能通過瀏覽目錄結構,訪問到某些隱祕檔案(如PHPINFO檔案、伺服器探針檔案、網站管理員後臺訪問地址、資料庫連線檔案等)
以上漏洞等級劃分
高危漏洞:SQL注入、檔案上傳、檔案包含、程式碼執行、未授權訪問、命令執行
影響:直接影響到網站許可權和資料庫許可權,能夠獲取資料或者網站的敏感檔案。涉及到資料安全和許可權的丟失都為高危漏洞
中危漏洞:反序列化、邏輯安全
低危漏洞:XSS跨站、目錄遍歷、檔案讀取
影響:網站的原始碼,網站部分賬號密碼
以上漏洞重點內容
CTF:SQL注入、檔案上傳、反序列化、程式碼執行
SRC:圖片上漏洞都能出現,邏輯安全出現比較多
紅藍對抗:涉及的高危漏洞,檔案上傳、檔案包含、程式碼執行、命令執行
案例演示
案例-SQL注入漏洞,資料庫操作危害(pikachu靶場演示)
瞭解瀏覽器,資料包,資料庫中間的關係
資料庫中可檢視此題的相關資料
show databases; 檢視所有資料庫
use pikachu; 進入pikachu資料庫
show tables; 檢視pikachu中所有表
select * from member; 檢視member表中欄位(此題對應的資料庫表)
select * from users; 檢視users表中所有欄位(網站使用者賬號密碼,存在SQL注入的話,可以通過查詢這個表獲取許可權)
檢視原始碼,可以看到程式碼中執行的SQL語句,可以修改程式碼添加回顯
查詢可看到執行的SQL語句
burp抓包,可以看到響應資料包中執行的SQL語句
操作
修改資料包中的欄位,使用聯合查詢語句,將users表中username,password欄位查詢出來
union select username,password from users
出現回顯
此時檢視響應資料包,也可檢視執行的SQL語句
案例-目錄遍歷漏洞,原始碼結構洩漏危害(pikachu靶場演示)
發現網站檔案資料夾的方法:目錄掃描、網站原始碼
../ 表示上級目錄
訪問連結顯示的URL
已知WWW目錄下存在l.php檔案,通過目錄遍歷漏洞可獲取
通過更改URL進入到上級資料夾中的l.php檔案
檔案讀取漏洞-原始碼內容獲取危害
檔案讀取漏洞是讀取單個檔案的內容。目錄遍歷能夠讀取到資料夾和檔案,不能讀取檔案裡面的內容。
案例-檔案上傳漏洞,WEB許可權丟失危害(pikachu靶場演示)
只檢測了檔名,沒有檢測檔案型別。僅在前端做了驗證,後端沒有驗證
上傳圖片測試
嘗試上傳PHP檔案
失敗
修改檔案字尾,上傳成功
通過burp抓包,修改請求頭中的引數
上傳成功
讀取成功