cn.daxia123.cn/cn.js注入的解决方案
来源:互联网 发布:php api接口开发安全 编辑:程序博客网 时间:2024/06/11 19:48
近期网站数据库中被注入了大量cn.daxia123.cn/cn.js的恶意脚本,不解的是我明明在程序做了防注入代码还能被轻易攻击。
经查证发现该挂马将攻击代码用二进制编译成了类似于0x4445434C415245204054205641524348415228323535292C404的代码,防sql注入的代码无法识别,但sql server 会将此方式编译的代码还原为原来的样子这样就绕过了sql防注入代码。由于不是“and|update|script” 之类的防护方式能够解决的,除非网站全部改静态,否则中招的可能性很大。
针对该原理,首先我改进了防sql注入的代码(注意该代码不要用JS来写,否则对于禁掉该脚本的浏览器是无效的),做成avoidin.asp,嵌入每个传参数的ASP页面中进行非法代码的过滤,并将非法注入记录到日志中;然后,在数据库新增、更新前,对Value进行严格检查;最后把网站前台每个页面的数据库访问权限均改为只读,仅在后台维护系统和留言等内容提交中切换为可写权限。
这样改进后,这两个月来网站终于稳定下来,没再接连招到攻击了。
avoidin.asp代码如下:
<%
Response.Buffer = True '缓存页面
'防范get注入
If Request.QueryString <> "" Then StopInjection(Request.QueryString)
'防范post注入
If Request.Form <> "" Then StopInjection(Request.Form)
'防范cookies注入
If Request.Cookies <> "" Then StopInjection(Request.Cookies)
'正则子函数
Function StopInjection(Values)
Dim regEx
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "'|;|#|([/s/b+()]+([email=select%7Cupdate%7Cinsert%7Cdelete%7Cdeclare%7C@%7Cexec%7Cdbcc%7Calter%7Cdrop%7Ccreate%7Cbackup%7Cif%7Celse%7Cend%7Cand%7Cor%7Cadd%7Cset%7Copen%7Cclose%7Cuse%7Cbegin%7Cretun%7Cas%7Cgo%7Cexists)[/s/b]select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[/s/b[/email]+]*)"
Dim sItem, sValue
For Each sItem In Values
sValue = Values(sItem)
If regEx.Test(sValue) Then
unLawStr=""
for each x in Request.ServerVariables
unLawStr = unLawStr & x & ":" & Request.ServerVariables(x) & Chr(13)&Chr(10)
Next
WriteLog unLawStr
Response.Write "非法注入!你的行为已被记录!!:<br>"
response.write Replace(unLawStr,Chr(13),"<br>")
Response.End
End If
Next
Set regEx = Nothing
End function
Sub WriteLog(str)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
logFile="c:/sqlin.log"
Set fob = server.CreateObject("Scripting.filesystemObject")
Set fle=fob.OpenTextFile(logFile,ForAppending,true)
fle.writeLine "注入点:" & Now()
fle.write str
fle.writeline
fle.close
Set fob=nothing
End Sub
%>
- cn.daxia123.cn/cn.js注入的解决方案
- cn.daxia123.cn/cn.js MSSQL注入处理
- 数据库被注入daxia123或cn.jxmmtv.com原因及解决办法.SQL语句执行即可
- js cn to 16
- hackinglab.cn 注入关之一
- Gmail.cn是谁的?
- CN新婚之夜的疯狂
- google.cn的败局
- cid.cn
- aikor.cn
- AjaxLoading.cn
- Binkery.cn
- 56114.cn
- zh-CN
- liuyixiang.cn
- ITKEE.CN
- openGPS.cn
- openGPS.cn
- How to add a user and set environments for the user?
- 蔡军生先生第二人生的源码分析(七十三)LLFeatureManager类分析特性文件
- 蔡军生先生第二人生的源码分析(七十四)LLStartUp类维护启动状态机
- 蔡军生先生第二人生的源码分析(七十五)启动状态详细说明
- 学生的造句
- cn.daxia123.cn/cn.js注入的解决方案
- 多窗口的扩展
- my way
- 简单实用的DataSet更新数据库的类+总结(c#)
- 失业在家
- 计算器
- 杀毒 ysv15.exe/dlod15.exe/ctfmon.exe/svchost.exe/midimap*.dll
- 用cmake编译gtk程序:gssdp
- 2008新概念