仓酷云

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

[学习教程] ASP网页编程之动网论坛上传文件毛病的道理和打击的...

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:14:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;打击|上传比来一段工夫对照忙,没甚么工夫为构造做奉献(其实是没气力,呵呵).恰好前一段工夫听小*(*蛋儿的《今朝盛行的BBS平安性对照》一文请参阅:http://wvw.ttian.net/forum/viewtopic.php?id=269)说动网论坛出了一个上传恣意文件的毛病,事先没怎样分明.可是我看到比来NB论坛上全体都在会商有关这方面的成绩,就研讨了一下,发明这个毛病的确存在,并且十分严峻,用小*的话说是DVBBS7.0SP2以下通杀.固然有些人已晓得了打击办法,可是仍是存在一些成绩.上面我就动网的这个毛病做一下解说.(不晓得会不会被人骂,由于这个毛病其实太年夜了).

我们先看一下动网论坛上传文件的相干代码:

===========无组件上传(upload_0)====================
subupload_0()
setupload=newUpFile_Class创建上传工具
upload.GetDate(int(Forum_Setting(56))*1024)获得上传数据,不限巨细
iCount=0

ifupload.err>0then
selectcaseupload.err
case1
Response.Write"请先选择你要上传的文件 [<ahref=#onclick=history.go(-1)>从头上传</a>]"
case2
Response.Write"图片巨细凌驾了限定"&Forum_Setting(56)&"K [<ahref=#onclick=history.go(-1)>从头上传</a>]"
endselect
exitsub
else
formPath=upload.form("filepath")
在目次后加(/)
ifright(formPath,1)"/"thenformPath=formPath&"/"

foreachformNameinupload.file列出一切上传了的文件
setfile=upload.file(formName)天生一个文件工具
iffile.filesize<100then
response.write"请先选择你要上传的图片 [<ahref=#onclick=history.go(-1)>从头上传</a>]"
response.end
endif

fileExt=lcase(file.FileExt)
ifCheckFileExt(fileEXT)=falsethen
response.write"文件格局不准确 [<ahref=#onclick=history.go(-1)>从头上传</a>]"
response.end
endif

randomize
ranNum=int(90000*rnd)+10000
filename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt
iffile.FileSize>0then假如FileSize>0申明有文件数据
file.SaveToFileServer.mappath(filename)保留文件
response.writefile.FilePath&file.FileName&"("&file.FileSize&")=>"&formPath&File.FileName&"乐成!<br>"
response.write"<script>parent.document.forms[0].myface.value="&FileName&"</script>"
iCount=iCount+1
endif
setfile=nothing
next
setupload=nothing
session("upface")="done"
HtmendiCount&"个文件上传停止!"

endif
endsub

在下面代码中能够看到如许一句:
filename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt
这里,filename是保留的文件名,它是按照上传工夫来定名的,最初扩大名是表单中提交过去的文件的扩大名.可是程序中对提交文件的范例做了限定,明显想间接上传ASP文件是不成行的.可是我们来看一下做为后辍的根据从那里来的呢?我们能够在reg_upload.asp中找到如许的代码:
<formname="form"method="post"action="upfile.asp"enctype="multipart/form-data">
<inputtype="hidden"name="filepath"value="uploadFace">
<inputtype="hidden"name="act"value="upload">
<inputtype="file"name="file1">
<inputtype="hidden"name="fname">
<inputtype="submit"name="Submit"value="上传"onclick="fname.value=file1.value,parent.document.forms[0].Submit.disabled=true,
parent.document.forms[0].Submit2.disabled=true;">
</form>
如许,我们晓得了,程序是提取file1表单和fname表单中的值来做判别的.也就是说间接从页面递交我们的ASP文件也是行欠亨了,可是,假如是我们本人机关数据包的话就纷歧样了.愿望之翼提出的办法就是自已机关数据包来到达棍骗的目标.将提交的file1表单和fname表单项的值改成正当的文件称号.如许就能够绕过文件范例的检测了.

固然,次要的成绩不在这里,假如我们只是要上传那些代码的话,我们完整能够间接改文件名就行了.我们的目标是要让我们上传的文件名改成ASP,如许我们才能够使用.关头就在这一句了:
formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt
这句话将一段字符串兼并起来.我们能改的就是formPath这个参数.在盘算机中检拆字符串的关头就是看是不是碰着字符,假如是,则以为字符串停止了.也就是说我们在机关上传文件保留路径时,只需棍骗盘算机,让他以为相似"uploadfacezwell.asp"如许的路径参数已停止了,如许,前面连续串的工夫字符我们都能够不要,从而到达间接将文件保留为我们界说的文件名的目标.因些,我们要做的是在机关的数据包中,将表单中的filepath改成相似uploadfacezwell.asp的字符串然后发送进来就好了.

我们先来看一下数据包的格局(论坛上仿佛人人用的是WSockExpert,不外我用的是IRIS,我以为更专业一点,^_^):


POST/forum/upfile.aspHTTP/1.1
Accept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-Flash,*/*
Referer:http://192.168.10.101/a.asp?a=http://uyee.com/forum/upfile.asp
Accept-Language:zh-cn
Content-Type:multipart/form-data;boundary=---------------------------7d4a325500d2
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.2;MyIE2;.NETCLR1.1.4322;.NETCLR1.0.3705)
Host:uyee.com
Content-Length:1593
Connecti</p>使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-20 08:34:13 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-23 22:50:38 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
愤怒的大鸟 该用户已被删除
地板
发表于 2015-1-31 20:15:34 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
因胸联盟 该用户已被删除
5#
发表于 2015-2-6 22:08:20 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
萌萌妈妈 该用户已被删除
6#
 楼主| 发表于 2015-2-18 22:24:20 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
小魔女 该用户已被删除
7#
发表于 2015-3-6 11:14:15 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
山那边是海 该用户已被删除
8#
发表于 2015-3-13 00:08:39 | 只看该作者
掌握asp的特性而且一定要知道为什么。
蒙在股里 该用户已被删除
9#
发表于 2015-3-20 06:42:29 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 09:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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