自己搭建IIS找ASP程序漏洞

网络整理 - 08-10
老师兴高采烈:各位菜鸟,“老师轮流做,今天到我家”,现在轮到我给大家讲课了,还不赶快欢迎?!
  众学生:晕,说的这么轻松,轮到你做老师?凭什么啊?
  老师怒曰:凭什么?哼哼,不给你们点颜色看看你们不知道我可以做老师!小A、小K,看你们两个的表情,是不是不服啊?信不信我现在把你们两个的个人主页DDoS了?
  小A和小K:汗……个人主页都要DDoS……你狠!服了你还不行?!
  老师一脸得意:服了我就好,学生如果不服老师我这课还怎么讲?好了,现在开始上课!
  学生D:老师,今天讲什么啊?
  “晕,昨天只是记着今天我做老师,居然忘记备课了……”老师暗地里发冷汗,不过老师毕竟见多识广,难不倒的,“这个嘛,既然我这个做老师的自我感觉良好,当然不怕大家找各种各样的问题难为我。现在给你们5分钟讨论一下,今天要怎么难为老师!”
  学生们讨论中……
  5分钟过去了,学生F总结了一下讨论的结果:老师,现在动易的网站管理系统很不错,大家都在用这个做自己的网站,功能强大啊。不知道有没有最新可以利用的漏洞啊?
  老师:嗯,既然大家对动易感兴趣,我们就来看看吧。动易出品的三款产品:MyPower、FreePower和PowerEasy都是非常不错的东东,大家可以用它们非常轻松的完成个人网站、公司网站的制作,发展到现在,动易的产品已经不仅仅是单一的文章管理系统,现在甚至还可以做下载、图片网站!正是因为功能如此强大,现在用这套系统的人越来越多!比如我们常去的就是用的这个系统。
  “老师,别说这些了,我们都对这些什么功能啦什么的,不感兴趣,我们就想知道可以黑不?”
  “唉,你们这些学生啊,就知道做坏事……”
  老师打开讲桌上的笔记本电脑,到动易的官方网站 下载了最新的“动易网站管理系统Ver4.03”,“为了不对别人的网站造成破坏,我们在本机搭建试验环境进行讲解。”
  “老师,下载的文件都是asp的,怎么打开啊?用记事本吗?”学生小Z小心翼翼的问。
  “晕,在我的菜鸟黑客学习班居然还有这样的学生,算我中大奖了,回头我就买彩票去”,老师实在无奈啊,居然还问ASP文件怎么打开……
  “那我就老老实实的教你们了。我们平时在网上看网站,多数是HTML和ASP的页面,至于HTML的我不解释了,这个咱们班里的同学都明白,而ASP有些不一样,它是在远程的服务器端执行的,比如我们浏览微软网站的一个ASP页面,那么页面的一些脚本是在Microsoft的服务器执行的,返回给我们的是HTML形式的结果。用ASP可以轻松的做出动态功能的页面。”
  “那么我们怎么才能浏览ASP的网站呢?微软给了我们简单易行的方案——用IIS做WEB服务器,默认的就支持ASP,大家可以在控制面板的‘添加/删除程序’里面选择‘添加/删除Windows组件’,然后在‘Internet信息服务’那里选择,下一步知道完成就好了。完成之后,去‘程序-管理工具-Internet服务管理器’,一般的我们在本地测试可以选择‘默认WEB站点’,当然也可以自己新建一个站点。下面的是IIS的主界面:
  
  选择‘属性’,我们有三个地方要设置,1、‘WEB站点’,在‘IP地址’这里选择你自己电脑的IP;2、‘主目录’你需要在‘本地路径’这里选择你下载下来的文件解压后的目录,当然如果你想偷懒,可以把你的ASP文件解压到系统盘目录下面的Inetpub下面的wwwroot目录;3、‘文档’是负责设置你网站主目录或者次级目录的默认显示文件的,比如你添加一个‘index.asp’那么你的网站就默认打开一个文件夹的时候调用这个文件的内容。”
  “我可以设定这个首页文件是我的名字不?”,小A问“比如设成a.htm或者a.asp?”
  “当然可以,只要添加这个首页的文档就可以了,如果你添加了这两个,哪个在上面,哪个就先执行,有个优先的顺序”老师说。
  
  “默认的,我们下载的‘动易网站管理系统Ver4.03’首页文件是index.asp,我们只要在‘文档’添加index.asp就可以了。下面我们解压程序包,把‘免费版’里面的文件拷贝到wwwroot文件夹,当然你也可以专门指定一个文件夹了,安全性更好一些。”
  “老师,快说,网站什么时候可以看到啊!”
  “马上,不要急啊”,老师喝一口茶,润一下喉咙,“嗯,把程序释放到文件夹之后,打开浏览器,输入你的IP地址,还有安装的引导文件名,比如我就可以输入:,程序提示你输入网站的名字、版权什么的,只要按照自己的需要填写然后下一步就可以。记得执行完之后要删除install.asp啊,否则会被别有用心的人利用的。”
  “知道了,老师!然后呢?”一帮小菜用期待的眼神盯着老师。
  “然后?打开浏览器,输入你的IP,就可以看到网站啦!”
  “果然可以了啊!现在就添加文章去!”小C、小D一脸的兴奋。
  “不过……”老师故意放慢了讲话的速度。
  “不过什么啊老师?难道还不可以运行?”
  “当然可以运行,不过今天我讲这么多主要是想交给大家如何取得这个文章系统的路径,物理路径。这个是刚刚发现的漏洞,还没有告诉别人呢!”
  众菜鸟一听就来了精神,“老师快说!”
  “嗯,事情是这样的,现在你们在我们刚才一起做的网站每人注册一个帐号,然后点发表文章,会出现要你们输入文章内容的页面,看到一个要你上传文件的提示框没有?”
  
  “就在‘浏览’和‘上传’两个按钮之间的位置,点鼠标右键,查看源代码,找到下面的几行:
  <form action="upfile_article.asp" method="post" name="form1" onSubmit="return check()" enctype="multipart/form-data">
  <input name="FileName" type="FILE" class="tx1" size="20">
  改成下面的内容:
  <form action="" method="post" name="form1" onSubmit="return check()" enctype="multipart/form-data">
  <input name="FileName" type="FILE" class="tx1" size="20">
  <input name="FileName" type="FILE" class="tx1" size="20">
  这样子然后保存到桌面,格式是htm就可以了。”
  “老师,这样可以做什么啊?干嘛添加文章还要这么麻烦改代码啊,好像是跨站攻击啊”小菜问。
  “呵呵,有点像”,老师笑着说“现在我们打开我们刚修改代码的这个文件,会出现两个输入文件的框框:
  
  找两个图片文件,可以是一个,不是一个也无所谓,然后点上传,出现了什么?”
  
  “哇,物理路径啊!”众小菜一片欢呼雀跃!
  “呵呵,我们现在做试验的动易版本是最新的4.03,大家可以试试别的版本”老师发话。“下面你们自由讨论10分钟,然后给我总结发言。”
  10分钟之后……
  “好,现在把你们的感受说一下吧,有交流才有进步!”
  小A:“我先说!就是程序必须是动易……(明摆着是废话!)”
  小E:“必须登陆系统,要不没法上传文件!”
  “还有,我的最有见解!inc/upfile_class.asp和upfile_article.asp存在这个漏洞,经过我的测试,凡调用inc/upfile_class.asp的几个文件upfile_article.asp, upfile_softpic.asp等等都可以成功!”小K大喊。
  “还有”,一向动作慢半拍的小D说:“要成功,还必须服务器没有屏蔽Microsoft VBscript 运行时错误的提示信息。比如华夏的用这种方法会出现‘处理 URL 时服务器出错。请与系统管理员联系。’这个要看管理员对IIS的设置了。”
  “好,我们从提示的内容‘此键已与该集合的一个元素关联’可以知道,主要是在/inc/upfile_class.asp这个文件对重复提交的处理不够好。比如我们同时提交两个文件的时候,两个文件的信息同时写入数据库,由于程序只设置了上传一个文件的情况,所以第一个写入了,第二个必然出错。从而暴露站点的物理路径。”
  “嗯,同学们做的很好”,老师对本节课的效果感到非常满意,“同学们,今天学的不错,今天的作业就是回去测试下动易出品的另外两套程序,MyPower3.51和FreePower3.62有没有这个问题!当然,应该有这个问题的不仅仅是动易的程序,这个大家课后自己试验!下课!同学们再见!”
  “老师再见!”……