零、前言
最近做專心web安全有一段時間了,但是目測后面的活會有些復雜,涉及到更多的中間件、底層安全、漏洞研究與安全建設等越來越復雜的東東,所以在這里想寫一個系列關於web安全基礎以及一些討巧的payload技巧以便於備忘。不是大神、博客內容非常基礎,如果真的有人看而且是大牛們,請不要噴我,歡迎指正我的錯誤(水平有限)。
一、越權:
1、本質:
某賬戶擁有了超出它應有權限范圍外的操作許可權。
2、分類:
(1)水平越權:橫向擁有了同等安全等級、密級等衡量標准賬戶的權限。
(2)垂直越權:縱向擁有了更高安全等級、密級等衡量標准賬戶的權限。
3、一般越權發生的位置:
(1)修改、重置、找回其他賬戶密碼。
(2)查看、修改其他賬戶未公開的信息,例如個人資料、文件、數據、程序等。
(3)其他應與賬戶關聯的權限操作。
4、發生越權行為的開發級原因以及防御辦法:
涉及用戶信息的操作需要驗證用戶身份,比如查看各種用戶信息的情況下,不能只根據用戶uid去搜索,應該再次進行身份驗證。可以在session或者cookie中加入不可預測、不可猜解的user信息,或者特別敏感的操作應該再次讓用戶輸入password或者其他用戶驗證信息。
5、檢測手段:
(1)STEP1:查看所有敏感涉及到賬戶的操作是否有除了UID之外的驗證方式,沒有的話構造uid訪問,可檢查是否有漏洞,這里的uid代指username、email、userid 等聲稱的賬戶信息。
(2)STEP2:如果有驗證參數,嘗試是否是可以預知的或者可以猜測出來的。不是,沒有漏洞,是,有漏洞,構造請求驗證漏洞。
二、會話邏輯:
1、session的問題:
(1)sessionid簡稱sid,應在登錄成功之后進行重置,一般保存在cookie中,set-cookie重置即可。否則會導致Session Fixation攻擊。
(2)sessionid應當在合理時間內過期,否則將導致session保持攻擊,也就是別人利用cookie登錄以你的身份登錄。
三、業務邏輯:
1、支付類邏輯漏洞
(1)修改商品為負數(可能會增加攻擊者賬戶對應的真實或虛擬財富值)
(2)修改單價、總價、運費價(修改為負數,改小等)攻擊者獲取利益。
(3)修改價格字段值為字符串,嘗試攻擊服務器異常拋出邏輯錯誤,例如,總價異常拋出是修改為0。
2、信息轟炸類漏洞
(1)短信轟炸、郵件轟炸、私信轟炸。
(2)可能發生的地方:
(2.1) 注冊驗證碼獲取(郵件短信)
(2.2) 注冊激活郵件獲取(郵件)
(2.3) 密碼找回驗證(郵件短信)
(2.4) 支付類信息、驗證碼驗證(短信)
(2.5) 站內信、私信發送處(私信、站內信)
(3)測試方法:抓到發送短信、郵件、私信、站內信的報文,不斷重放。
3、針對用戶拒絕服務攻擊
(1)指定目標用戶,拒絕其服務進行攻擊。
(2)邏輯漏洞,驗證信息多次錯誤嘗試可能導致用戶被封鎖。
(3)漏洞地點:驗證發生的任何地方(注冊、支付、密碼找回、密碼修改、登錄、敏感操作等)
(4)測試辦法:重放錯誤驗證信息的報文。
四、暴力破解:
1、驗證碼。
2、頻率試錯控制。