邏輯漏洞
因為程式本身邏輯不嚴或邏輯太複雜,導緻一些邏輯分支不能夠正常處理或處理錯誤,造成的一系列漏洞
Web安全滲透三大核心方向
輸入輸出
OWASP早期比較側重的典型的web漏洞:注入、跨站、上傳、代碼執行等屬于輸入輸出
登入體系、權限認證
近年來,越權漏洞、邏輯繞過、接口安全等逐漸增多,這些屬于登入體系和權限認證
業務邏輯漏洞分類
1、登入體系安全
暴力破解
用弱密碼字典,或者社工生成針對性的字典去爆破密碼
複制
線上生成社工密碼
cookie安全
有的網站對cookie不加密,也不base64編碼,直接明文表示。可以自己重構組建cookie
複制
加密測試
測試cookie、使用者名、密碼等敏感資訊是否加密、使用了什麼加密算法,然後解密
複制
登入驗證繞過
直接在url裡輸入要進入的頁面路徑、檔案名,看能不能不登入就直接通路
複制
任意注冊
不驗證手機号,不要求提供手機驗證碼(或者可繞過)。比如生成十億條手機号,然後批量注冊,将沒有注冊過的手機号都注冊掉,影響正常使用者的注冊。
或者隻驗證手機号,不驗證是否注冊過。比如這個手機号a用來注冊一個微信号,然後a不用了,營業廳又把這個手機号賣給b了,b又拿着這個手機号注冊了一個微信。結果b新注冊的微信覆寫掉了a的微信(隻是舉例,純屬虛構)
複制
2、業務一緻性安全
手機号篡改
抓包,将目标手機号改為自己的手機号,然後自己的手機号就接收到了驗證碼,有的網站隻會驗證驗證碼是否正确,沒綁定使用者,不驗證是發給誰的。
複制
郵箱和使用者名更改
同上,隻是改的是郵箱和使用者名
複制
訂單ID更改
改ID,第一次下了5萬的訂單,第二次下一個5塊錢的訂單。可以抓包将第二次的訂單号改成第一次的訂單号。或者換成别人值錢的訂單号,系統可能會将第一次的訂單發兩次
複制
商品編号更改
改商品編号,比如本來買的是5毛錢的1号商品,改成50k的2号商品
複制
使用者ID篡改
使用自己的賬号密碼登入成功,擷取登入成功的狀态碼。然後将ID換成别人的ID,系統如果隻驗證狀态碼的話,就會以别人的ID登入
複制
流程順序
比如一個自動售貨機,本來應該是先收錢,再吐商品。換個順序,就成了先吐商品,再收錢。然後你就能拿了商品就跑
複制
3、業務資料篡改
金額資料篡改
修改商品價格。0元購(一般是虛拟貨币,比如用金币、Q币支付),0.01元購(一般是RMB支付,因為銀行卡每次轉賬的金額必須大于等于0.01)
複制
商品數量篡改
修改商品數量,本來隻買1件衣服,改成買了100件衣服
複制
最大數限制突破
比如特價商品限購1件,改成10件
複制
金額&優惠組合修改
顧名思義,同上
複制
4、密碼找回漏洞
分析資料包,定位敏感資訊
在實作找回密碼功能時,有些網站會在傳回包裡加入一些敏感内容
複制
分析找回機制
看是通過郵箱驗證碼還是手機驗證碼驗證使用者身份的
複制
修改資料包驗證
改cookie等資訊
複制
任意密碼找回
通過分析驗證碼、cookie、狀态碼找回、修改密碼——或者跳過驗證步驟、找回方式等步驟,直接跳到設定新密碼界面
複制
5、驗證碼突破
暴力破解
驗證碼爆破,有的驗證碼就是0000-9999,可以一個一個試
複制
時間、次數突破
有的驗證碼在一定時間内可以重複使用,比如使用手機驗證碼登入,然後登入完之後,還可以使用這個驗證碼修改密碼(如果修改密碼需要用到手機驗證碼的話),或者再重新登入一次
複制
回顯測試
進入找回密碼頁面,輸入手機号,擷取驗證碼,伺服器會向手機發送驗證碼,可以抓包檢視傳回包資訊,有時傳回包中會包含驗證碼
複制
驗證碼繞過測試
注冊的時候需要手機驗證碼,此時可以随便填一個手機号。然後抓包改狀态碼,比如将0改為1,将false改為true
複制
驗證檢驗機制猜解
驗證碼生成有規律,可以猜測。比如是使用者名加目前時間。比如這一次是0001,下一次是0002,下下一次是0003……驗證碼可控,我們能猜出下一次驗證碼是什麼
複制
6、會話權限安全
未授權通路
顧名思義,沒經過授權就通路。和登入測試繞過差不多,都是未授權(沒有登入),就看到了本應登入才能看到的東西
複制
水準&垂直越權測試
水準測試,使用者a執行了使用者b的操作;垂直越權,a執行了管理者的操作
複制
會話固定&會話劫持
會話固定:誘騙受害者使用攻擊者指定的會話辨別(SessionID)的攻擊手段。會話固定也可以看成是會話劫持的一種類型,隻不過不是盜取受害者的session,而是讓受害者使用攻擊者指定的session。
會話劫持:過盜取受害者Session ID,然後利用受害者的Session ID登入受害者的賬号
複制
7、資料重放安全
惡意注冊
同任意注冊
複制
短信&郵件炸彈
有的隻在前端驗證,比如60s後才能重新發送短信驗證碼,但是後端沒有驗證,可以讓他一直重發,耗盡他短信池的流量,一般用來做DDoS
複制
内容編輯
條件競争
比如上傳一個木馬,伺服器識别到就會删除一個。同時發100000萬個,然後不停的請求執行這個木馬。在某一刻,伺服器還沒識别到這是個木馬并删除的時候,你先請求執行這個木馬——隻要你上傳的速度大于他删除的速度,總會成功請求一個的
複制
資訊周遊
比如有的網站,id=1,就傳回1号使用者的資訊;id=2,就傳回2号使用者的資訊……id=10000,就傳回10000号使用者的資訊。重發的時候,可以設定id逐漸加1,就能周遊所有人的資訊
複制
8、資料接口安全
APP接口webservice
郵件&短信網關接口
資料庫接口
三方接口
一般來說,調用别人的接口都是有限制的,要麼有次數限制,要麼得花錢買。是以可以将用DDoS的方式耗光次數。而且在接口的位置可以爆破密碼。
支付漏洞
1、抓包改價格
在支付當中,購買商品一般分為三步驟:訂購、确認資訊、付款。随便哪個步驟都可以進行修改價格測試,若是前面兩步也有驗證機制,可以在最後一步付款時進行抓包嘗試修改金額
2、将未支付狀态改為已支付
改狀态碼
3、用别人的銀行卡支付
将銀行卡号換成别人的銀行卡号
示範
進入靶場,點選立即購買
提示花費了100元購買了商品
抓包
發現支付的金額就利用get傳參明明白白寫在這裡
将價格改成0.01
放包,隻花費了0.01元
越權漏洞
分類
1.根據對資料庫的操作進行分類,可以分為以下幾類:越權查詢、越權删除、越權修改、越權添加等。
2.根據次元進行分類,可分為:平行越權、垂直越權、交叉越權。
這裡講的是根據次元進行分類
危害
越權漏洞的危害與影響主要是與對應業務的重要性相關,比如說某一頁面伺服器端響應(不局限于頁面傳回的資訊,有時資訊在響應包中,頁面不一定能看見)中傳回登入名、登入密碼、手機号、身份證等敏感資訊,如果存在平行越權,通過對使用者ID的周遊,就可以檢視所有使用者的敏感資訊,這也是一種變相的脫褲,而且很難被防火牆發現,因為這和正常的通路請求沒有什麼差別,也不會包含特殊字元,具有十足的隐秘性。
如何檢測
最簡單的方式,通過定位鑒權參數,然後替換為其他賬戶鑒權參數的方法來發現越權漏洞。
水準越權
定義
水準越權,就是權限類型不變,權限ID改變。比如a,b兩個普通使用者,a隻能看a的資料,b隻能看b的資料。但是a通過修改使用者名或者其他參數,看到了b的資料,就是水準越權。
示範
點一下提示,看到了使用者,密碼資訊。
使用lucy登入
檢視個人資訊,是lucy的資訊
重新整理界面,抓個包,将lucy改為lili
此時,檢視個人資訊,顯示的是lili的資訊
垂直越權
定義
權限ID不變,權限類型改變。比如linux裡面普通使用者使用sudo提權,id未變,權限變了。
比如伺服器是通過驗證某個字段的值來判斷使用者的權限,比如role為1則為管理者,role為0則為普通使用者,普通使用者通過手動修改role的值,欺騙伺服器,達到提權的目的。
如果普通使用者和管理者使用者不在一個表裡。則使用更改cookie的方法來提權。
示範
檢視提示,知道了普通使用者pikachu的密碼,登入pikachu
此時發現隻有檢視權限
登出,使用admin使用者登入
添加一個使用者
建立的時候抓包,然後發送給重發器(Ctrl+R)
發完之後将包放了
退出admin的使用者登入,此時再以pikachu的身份登入
這個時候已經admin建立的1使用者已經生效了
重新整理一下,抓個包,複制pikachu使用者的cookie的值
回到重發器
将這裡原本admin的cookie改為pikachu的cookie,使用者的賬号密碼也改一下,以區分之前建立的1使用者
點選發送,重新整理一下頁面,多了個2使用者
水準垂直越權
顧名思義,這是前兩個的合集。可以這麼了解:技術部的員工幹了人事部部長的事…………
越權漏洞修複方案
1、基礎安全架構,完善使用者權限體系。要知道哪些資料對于哪些使用者,哪些資料不應該由哪些使用者操作;
2、鑒權,服務端對請求的資料和目前使用者身份做校驗;
3、不要直接使用對象的實名或關鍵字。
4、對于可控參數進行嚴格的檢查與過濾!
複制