仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 405|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之数据库被挂马的办理办法

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:06:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。据库被挂马我信任良多人都碰着过。在这里,我讲下我处置的办法。
第一步:为现无数据库做好备份。
第二步:
实行以下ASP文件,如许就能够往失落数据库傍边的JS木马:
注:conn.asp本人往写了。代码:

这里放进JS木马内容:请记得改成本人数据库中的JS木马内容。
<!--#includefile="conn.asp"-->
<%
Server.ScriptTimeOut=180
SetrstSchema=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,3
Fori=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.Form
If(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.QueryString
If(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结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。
飘灵儿 该用户已被删除
沙发
发表于 2015-1-18 20:27:10 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
小魔女 该用户已被删除
板凳
发表于 2015-1-25 13:35:52 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
若天明 该用户已被删除
地板
发表于 2015-2-2 22:18:21 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
兰色精灵 该用户已被删除
5#
发表于 2015-2-8 13:32:36 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
若相依 该用户已被删除
6#
发表于 2015-2-25 16:01:23 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
蒙在股里 该用户已被删除
7#
发表于 2015-3-8 00:58:56 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
8#
发表于 2015-3-15 19:20:28 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
谁可相欹 该用户已被删除
9#
发表于 2015-3-22 03:10:30 | 只看该作者
掌握asp的特性而且一定要知道为什么。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 04:03

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表