近期發現公司某些站點出現偶爾跳轉博彩網站的現象,經過排查發現該現象為供應鏈投毒攻擊,BootCDN上的靜態資源無一例外均被污染, 當外站引入BootCDN的靜態資源時,如果請求攜帶的Referer頭為指定值(涉及公司隱私不便透露),User-Agent頭為手機瀏覽器UA,觸發惡意代碼註入。 例如:h ...
近期發現公司某些站點出現偶爾跳轉博彩網站的現象,經過排查發現該現象為供應鏈投毒攻擊,BootCDN上的靜態資源無一例外均被污染,
當外站引入BootCDN的靜態資源時,如果請求攜帶的Referer頭為指定值(涉及公司隱私不便透露),User-Agent頭為手機瀏覽器UA,觸發惡意代碼註入。
例如:
https://cdn.bootcdn.net/ajax/libs/react/18.2.0/cjs/react-jsx-dev-runtime.development.js
使用指定的Referer和User-Agent頭後
惡意代碼首先會檢查User-Agent是否包含Mac和Win即在PC端瀏覽器不會觸發惡意動作,並且Referer中包含“.”字元時開始執行惡意函數(nRgmSS),
該函數會動態創建script標簽到網頁頭部,src指向https://union.macoms.la/jquery.min-4.0.2.js,該文件是一個偽裝成jquery庫的惡意文件,該文件中含有跳轉代碼,
並根據規則提供兩種植入廣告的方式,直接跳轉和底部浮動廣告。
該文件還會向網頁頭部嘗試添加51.la提供的站點訪問統計js(https://js.users.51.la/13553579781.js),並以該js作為開關成功載入後執行跳轉,未成功載入時,則
無任何動作,也就是攻擊者可以通過開關51.la後臺提供的功能動態選擇是否實施攻擊。還有部分cookie的判斷,即存在某些cookie或網頁已經載入過惡意代碼後就
不在繼續載入。
結論:
該攻擊方式為典型的供應鏈投毒攻擊,攻擊者在伺服器端根據Referer和User-Agent實施定向惡意代碼註入,非常隱蔽,惡意代碼作為載入器再進一步載入其它的惡意
js文件,進而實施攻擊。能實施這種攻擊伺服器許可權應該已經被攻擊者拿下,因此不建議再使用BootCDN的靜態資源文件。