一次腳本注入廣告漏洞分析


如果網站突然彈出一個廣告(不是自己主動添加的聯盟廣告),第一直覺是DNS劫持,在此之前也是唯一直覺。之前遇到過幾次DNS劫持,WAP站彈出廣告,路由器被劫持彈出廣告。未經歷其它安全事件之前,我也只是偶爾關注一下安全事件,上一次重大修復還是去年,這一次問題也比較嚴重,可以說是很嚴重。

尋找漏洞

年前快放假了,有同事反饋展示庫彈出廣告,分析沒有發現劫持現象。抓包調試發現全部js文件被篡改了,篡改還是以編碼的形式,執行時解碼。看來這次遇到比較厲害的角兒了。但是它是如何篡改js文件的呢?

  1. 服務器異常
    服務器安全軟件全部是異常的,難道是服務器被黑了,直接拿到權限到服務器去執行了腳本程序,檢查了login日志也沒有發現異常,看來還是要另尋問題分析。一系列安全查殺開始運行一圈。
  2. http服務器日志異常
    日志對於問題分析很關鍵,但有一種情況就是未出問題之前沒有服務器日志,也或者說攻擊者刪除了服務器日志,要怎么辦呢?如果真的是這樣,我也就只能呵呵了,事實也就是這樣,呵呵噠!
    對於發現的網站,手動修改了被篡改的js文件,表面上解決問題了,但事實是轉眼又被篡改了。
    明天就放假了,今天還在這里查找漏洞,情何以堪。一時不能分析日志,能做的就是重新設置開啟服務器日志,關閉上傳功能,目錄權限只讀。先暫時處理問題,過完年再回來徹查問題。其實問題根本沒有解決,如果木馬腳本已經上傳到服務器了呢?問題也依然沒能解決,如果關鍵詞查詢一下就可以找到相關腳本文件了。
  3. 年后問題依舊存在
    網站js文件全部被篡改了,包括未使用的文件也被篡改了。一邊寫腳本批量替換掉被修改的文件,一邊關鍵詞查詢木馬文件。nodejs寫了一個簡單的批量替換腳本,木馬腳本文件也找到了,通過上傳漏洞上傳了一個生成一句話木馬的文件,一句話木馬文件就想干嘛干嘛了,其中還生成了一個大馬,一個服務器文件管理后台,看到這個大馬腳本,一下覺得自己接觸的內容太寒摻了。
    能找到文件但是還找不到上傳漏洞,問題依舊是問題,同時線上客戶網站也發現了同樣的問題,線上服務器日志存在。向IDC索要了服務器日志文件,分析時發現了一個1.php,aboutus.php文件,以及上傳漏洞位置。

分析漏洞

程序使用的是phpcms深度二次開發得到的,自然而然phpcms的問題依舊是我們的問題,對於phpcms的版本不斷升級,發現的安全問題也在不斷完善修復,我們的程序沒有及時關注漏洞更新也就導致了這起問題的發生(漏洞修復期間依舊后期,我嘗試了一些其他線上網站,原來沒有就是安裝補丁的不止少數)。

頭像上傳漏洞

通過api接口查看到key,拿到key以后再按照本地生成data的方法,手動生成data數據,拼接url避開驗證獲取上傳路徑,通過上傳漏洞直接上傳腳本文件至頭像目錄(上傳是用的swfObject,flash生成大小不一的尺寸,然后壓縮上傳,后台程序解包至指定文件夾就完事了,沒有過濾非法文件以及文件夾),使用burp抓取請求,替換請求數據(數據中包含腳本)。
get authkey

/api.php?op=get_menu&act=ajax_getlist&callback=aaaaa&parentid=0&key=authkey&cachefile=../../../phpsso_server/caches/caches_admin/caches_data/applist&path=admin

unofficial authkey

upload url

/phpcms/phpsso_server/index.php?m=phpsso&c=index&a=uploadavatar&auth_data=v=1&appid=1&data=6550BQMJAVJRCAMFBlNUVFIHC1JVCAIMVgAOB1FFCFILBkRFQGZQFxVQbF5TGAsBQQgKUQRId1YVClBTJ15YYQFwUnpjalYXI11DZHkGAQ

burp攔截修改http請求
unofficial burp
修改請求主體內容為自己需要提交的腳本內容

腳本執行
這里可以直接上傳腳本,也可以上傳一個生成一句話腳本的文件(想怎么做你自己看着辦,不做違法的事情)

更多隱藏漏洞

一個開源編輯器,沒有使用,沒有修改默認配置,於是乎也是一個潛在危害,對於程序中不斷引入越來越多的模塊,安全性真的值得考慮。

分析末尾

沒有深入總結問題,主要細節包含批量替換腳本的制作。本地展示庫使用nodejs處理zip包相關node-archiver,php腳本相關的是類ZipArchive,但最后還是使用c#弄了個exe。暫時告一段落,也只想呵呵了。

參考資料

node-archiver
ZipArchive
wooyun


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM