数据库被注入功击?

liuchengren 2009-07-20 04:06:45
最近做了一个网站,数据库采用SQL2000,也被(<script src=http://3b3.org/c.js></script>)多次注入功击.
估计是数据库密码被人盗了,后来进行了连接串加密,还是被功击,
后来又有DELPHI写DLL文件来加加密连接串,一样被功击。

现在用加密文件来保存连接串,并且文件路在传参时已进行加密,解密是用DELPHI写的DLL来处理的,还是被功击,

小弟无语了,望高手支招。谢谢!
...全文
174 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
皓月明 2009-09-25
  • 打赏
  • 举报
回复
被注入后真头疼
tkscascor 2009-07-31
  • 打赏
  • 举报
回复
传参数 可以叫简单的避免. 还有存储过程也不要动态拼接. 要不就用一些httphandler.什么的进行检查,过滤一些关键字.
VistaKobe 2009-07-31
  • 打赏
  • 举报
回复
友情帮顶!
virus7581 2009-07-31
  • 打赏
  • 举报
回复
up
wuyq11 2009-07-30
  • 打赏
  • 举报
回复
是否存在注入漏洞,通过存储过程操作数据
在global里进行判断

删除注入脚本
DECLARE @fieldtype sysname
SET @fieldtype='varchar'
--删除处理
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ','''','''')'
FROM sysobjects o,syscolumns c,systypes t
WHERE o.id=c.id
AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
AND c.xusertype=t.xusertype
AND t.name=@fieldtype
EXEC sp_MSforeach_Worker @command1=N'?'
参考
marvelstack 2009-07-30
  • 打赏
  • 举报
回复
注入的关键是你的SQL语句是否有漏洞,最常见的是拼串方式,

要完全避免请使用参数化SQL语句和存储过程,当然也不能给参数传递拼的SQL语句,如果传了需要进行判断处理。

根据这个原理,你SQL有漏洞,不管用什么语言开发程序都避免不了注入。
前进中的飞鸟 2009-07-29
  • 打赏
  • 举报
回复
这个一般是搜索框注入的,楼主把网站的搜索框限制输入长度就行了(15个字符)
slund 2009-07-29
  • 打赏
  • 举报
回复
使用参数化的语句来传递用户输入的变量,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。采用这种措施,可以杜绝大部分的SQL注入式攻击。
JonnySun 2009-07-28
  • 打赏
  • 举报
回复

这里有详细解答:

http://www.vjsdn.com/bbs/bbsTopicDetails.aspx?pid=448

--------------------------------------------------------------------

1. 用参数形式写入Sql ,不能用组合SQL写入数据,如: insert into abc(xx) values ('<script>')

2. 屏蔽注入点, post.aspx?type=1&username=csdn 在page_load内检查Url参数,如果类型不符就跳出页面
最好不用字符串传参数,用数字最佳,可屏蔽js注入

3.重写 protected override void OnLoad(EventArgs e)方法
写个类如CRequestChecker.CheckRequestAll(this);
这个方法代码如下.

4. Replace 关键字

转自 www.vjsdn.com
Cyanapple_wen 2009-07-28
  • 打赏
  • 举报
回复
用SqlParameter吧
LQknife 2009-07-28
  • 打赏
  • 举报
回复
同情楼主
jiyan1221 2009-07-28
  • 打赏
  • 举报
回复
LZ自己都写了个网站了,怎么还不明白怎么避免注入式攻击呢,用存储过程或者参数写Sql
gaijf 2009-07-28
  • 打赏
  • 举报
回复
解决办法:

用SqlParameter组sql条件


gaijf 2009-07-28
  • 打赏
  • 举报
回复
说白了就是sql注入问题

sql怎么注入?就是在执行sql时,组sql的条件有问题

sql条件怎么会有问题?在表单get提交,或着链接post时,出现了状况
fengjian_428 2009-07-20
  • 打赏
  • 举报
回复
换成SqlParameter 方式传递参数 不要直接拼接SQL字符串
和存储过程没关系
fengjian_428 2009-07-20
  • 打赏
  • 举报
回复
换成SqlParameter 方式传递参数 不要直接拼接SQL字符串
和存储过程没关系
zzxap 2009-07-20
  • 打赏
  • 举报
回复
SqlParameter 方式传递参数
指间的风 2009-07-20
  • 打赏
  • 举报
回复
楼上正解,把能换的sql 语句 全部 换成 存储过程。
zgke 2009-07-20
  • 打赏
  • 举报
回复
注入应该是你程序的问题..你就是把连接串加10层密码都无效...

先删除SQL无用的用户..
修改代码 查执行SQL语句的时候 全部使用SqlParameter 方式传递参数.或则对SQL参数进行对关键字屏蔽...

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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