仓酷云

标题: ASP教程之ASP数据库被挂马的编程处置办法 [打印本页]

作者: 山那边是海    时间: 2015-1-16 22:03
标题: ASP教程之ASP数据库被挂马的编程处置办法
结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。数据库被挂马我信任良多人都碰着过。在这里,我讲下我处置的办法。
第一步:为现无数据库做好备份。
第二步:实行以下ASP文件,如许就能够往失落数据库傍边的JS木马:
注:conn.asp本人往写了。
这里放进JS木马内容:请记得改成本人数据库中的JS木马内容。
<!--#includefile="conn.asp"-->
<%
Server.ScriptTimeOut=180SetrstSchema=conn.OpenSchema(20)
k=1
DoUntilrstSchema.EOF遍历数据库表
IfrstSchema("TABLE_TYPE")="TABLE"Then
response.writeK&".<fontcolor=red><b>"&rstSchema("TABLE_NAME")&"</b></font>:"显现表名Setrs=Server.CreateObject("ADODB.Recordset")
sql="select*from["&rstSchema("TABLE_NAME")&"]"
rs.opensql,conn,1,3Fori=0tors.fields.count-1遍历表中字段Ifint(rs(i).Type)=129orint(rs(i).Type)=130orint(rs(i).Type)=200orint(rs(i).Type)=201orint(rs(i).Type)=202orint(rs(i).Type)=203Then只处置字段范例为字符型的字段
conn.execute("update["&rstSchema("TABLE_NAME")&"]set"&rs(i).name&"=replace(cast("&rs(i).name&"asvarchar(8000)),这里放进JS木马内容,)")response.writers(i).name&""&rs(i).Type&""显现实行过的字段名。
EndIf
Next
response.write"<br>"
EndIf
rstSchema.MoveNext
k=k+1
Loop
response.Write"实行乐成"
%>
假如数据库表良多的话,下面的遍历数据库布局未实行完就被IIS给中断了。在这时候候能够在:
IfrstSchema("TABLE_TYPE")="TABLE"Then
傍边得当到场k值的局限,如:
IfrstSchema("TABLE_TYPE")="TABLE"k>10andk<20Then
如许的话就一次只操纵9个表。
第三步:
依据数据库JS注进的特征(会包含<script、</script>和http://如许的字符),在conn.asp内里放进以下代码:
FunctionCheack_Sqljs()避免数据库外链JS注进:true为发明外链JS注进。
DimF_Post,F_Get
Cheack_Sqljs=False
IfRequest.Form""Then表单提交时的检测ForEachF_PostInRequest.FormIf(Instr(LCase(Request.Form(F_Post)),"<script")0orInstr(LCase(Request.Form(F_Post)),"</script>")0)andInstr(LCase(Request.Form(F_Post)),"http://")0Then
Cheack_Sqljs=True
ExitFor
EndIf
Next
EndIf
IfRequest.QueryString""ThenQueryString提交时的检测ForEachF_GetInRequest.QueryStringIf(Instr(LCase(Request.Form(F_Get)),"<script")0orInstr(LCase(Request.Form(F_Get)),"</script>")0)andInstr(LCase(Request.Form(F_Get)),"http://")0Then
Cheack_Sqljs=True
ExitFor
EndIf
Next
EndIf
EndFunction
FunctionCheckDataFrom()反省提交数据True为数据从站外提交过去的
CheckDataFrom=True
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))ifmid(server_v1,8,len(server_v2))server_v2then
CheckDataFrom=False
endif
EndFunction
IfCheack_SqljsorCheckDataFromThen
Response.Write"<ScriptLanguage=JavaScript>alert(克制实行,不法操纵。);</Script>"Response.End()
EndIf

asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般
作者: 活着的死人    时间: 2015-1-18 19:48
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
作者: 柔情似水    时间: 2015-1-26 21:23
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
作者: 小女巫    时间: 2015-2-10 21:40
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
作者: 精灵巫婆    时间: 2015-3-1 15:47
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者: 莫相离    时间: 2015-3-10 20:17
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
作者: 愤怒的大鸟    时间: 2015-3-17 10:18
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
作者: 老尸    时间: 2015-3-24 07:25
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2