網(wǎng)站中存在的越權(quán)漏洞,首先我們來講一下什么是關(guān)鍵可控參數(shù),也就是說像我們的一些關(guān)鍵參數(shù),例如use ID order by ID就是一些關(guān)鍵的參數(shù),必須是你的這么一個測試者,是能夠去對其控制的。如果這個參數(shù)已經(jīng)挾持了,或者說他有固定的這個值。那此時的話就不稱為可控參數(shù)了。而關(guān)鍵就是你的改動必須能造成這個越權(quán)效果的一種稱為關(guān)鍵參數(shù)。我們一定要快速定位到這種關(guān)鍵可控的這個參數(shù)之后,我們才能夠更快速的去找到對應(yīng)的這么一個越權(quán)漏洞。
那后面講的這個堅持參數(shù)同變同控原則是什么意思,因為我們在一個請求信息里面可能會出現(xiàn)多個變量,或者說多個參數(shù)的這種情況。那我們一般先考慮的就是變化一個參數(shù),其他的參數(shù)是不變化的。來看一下這個響應(yīng)信息的變化情況。然后如果沒有出現(xiàn)你想要的情況,你就可以考慮說再變一個變量,就是變兩個變量,然后直到把全部變量變完,或者說去刪除某些變量,這個就是稱為我們的這個同變同控原則。
這里看得到控制其他變量不變,改變關(guān)鍵變量或同時變化,可能聽完我講大家可能覺得這些都是概念性的,大家可能會覺得很懵,那么我們就來看一下實例去講解一下。在看實例之前我差點忘記了要跟大家提一提我們怎么去找這個關(guān)鍵變量,但這么一個參數(shù)來看一下。首先第一種,我把它歸類為用戶身份的ID,它里面主要的網(wǎng)絡(luò)賦予用戶的一個唯一標(biāo)識,通過這個標(biāo)識可以確定這個用戶的,例如你的手機號、身份證號,或者說你證件號,用戶ID這些是不是都是唯一的,因為你想一下一個網(wǎng)站,你注冊的這個用戶名肯定不會重復(fù),因為它寫入數(shù)據(jù)庫,它肯定會去教育你的中這個用戶是否存在,如果有的話,就不要你繼續(xù)注冊,所以用戶ID也是他們的唯一的這么一個標(biāo)識他身份的這么一個參數(shù),這種就是用于去標(biāo)識我們這個使用者在網(wǎng)站里面的這個用戶身份了,就稱為用戶身份來的。
那第二個叫用戶屬性ID,用戶屬性ID也就是用戶在使用網(wǎng)站時候所產(chǎn)生的這么一個屬性ID,例如他在下訂單的時候,是不是就會造成有這個訂單號,或者說它在打開個人中心的時候,是不是可以修改它的一些資料,可能會有一些參數(shù)的值的變化。還有什么地址ID。記錄號ID。這些你可以理解為他這個身份所成熟的這么一個ID,或者說它屬性,例如我們?nèi)说膶傩允遣皇强梢运伎迹梢匀ヅ懿剑梢匀コ瑁梢匀ビ斡尽>褪俏覀內(nèi)说倪@個屬性,而這里的用戶屬性ID也就是根據(jù)我們在進行某個某類操作,而產(chǎn)生的這個屬性AId大家要清楚。
我們來看一下,水平越權(quán)基于身份ID等。看到這個例子,我們可以看得到,在這里的話,我們看到這個關(guān)鍵的參數(shù),它這個是get方式,get方式我們就將目標(biāo)或者說將重心去看它的這個 URL,因為我們都知道參數(shù)數(shù)值的時候是放在這個 URL上面去的,而我們post方式是放在請求正文里面去的,這一點大家一定要區(qū)別開來。我們看到這里只有兩個參數(shù),我們怎么去確定哪個是關(guān)鍵參數(shù),我們可以從它的一個語義化,大部分程序員他在編寫代碼的時候,都是遵循著語義化的這么一個概念,因為很多程序員在寫代碼的時候只想著如何去實現(xiàn)功能而忽略掉了安全上的漏洞問題,所以建議大家如果網(wǎng)站存在越權(quán)等漏洞的問題可以讓網(wǎng)站漏洞修復(fù)服務(wù)商SINE安全來檢測一下。