利用别人的程序二次入侵——攻破上传时候js判断文件类型

时间:2005/11/7 11:33:34      阅读:990          

今天早上,突然收到几年不见的朋友blacksheep发来的QQ信息,哈哈,高兴

记下了他的网站:http://www.blacksheep.cn

看了他的blog,哈哈,技术进步了不少,转一篇他的文章,以下为全文:

攻破上传时候js判断文件类型
这次我们的目标是一套管理软件,我个人对asp程序的管理型软件比较感兴趣。偶然一次机会,发现了一套xx行业的管理软件,而这套管理软件还有很多行业版本,因为鄙人是菜鸟,问高手要的时候没有一个人搭理我,于是只能自己想些办法。
先在网上搜索一下这套管理软件,哈哈,运气很好,有在线演示,同样的,其他的管理软件都有在线演示,ping一下,发现所有的管理软件演示是在一台服务器上,实在是太好了。我已经有了第一套的asp源代码,相信找出来漏洞只是迟早的事情。
同样先配置一下本机的管理软件运行,找到可以上传文件的地方——例如本软件的资源管理里面的上传,选择海洋木马,上传,发现弹出对话框,您上传的文件必须为.............,乱七八糟一堆文字,意思就是不能上传asp程序了,于是就不看他了,看一下文件中上传的我们还是找一下上传文件,upload.asp,所有的上传都是用的这一个文件,程序非常严谨,而且用了组件,但是却没有发现任何限制文件类型的语句,这个时候,任何人都会怦然心动,哈哈,一定是js进行的限制,我们看过很多文章,我们只需要保存一个页面,然后修改一下提交路径,就可以上传任意的文件了,在这里,我们有了源代码,连页面都不用保存,本机运行后,修改一下路径,就可以直接提交。
好,回过头来,看程序,刚才我们进入了资源管理的添加功能,出来了上传界面,右键,察看源文件,faint,居然用的网页对话框,没有办法新建窗口,也没有办法察看源文件。晕了。这个时候我们打开本机这个程序的文件夹,找到并打开上一个出现添加按钮的页面的源代码,研究一下,发现弹出的对话框中的文件为xxxxxxx/xxxx/xxx/update.asp文件,好,找到这个文件,打开,呵呵,果然,有这样一段js
if(s=="" ││ ";gif;jpg;png;wav;mid;mp3;zip;rar;lha;avi;mpg;mpe;ppt;doc;xls;txt;js;css;exe;swf;pdf;htm;xsl;xml;mdb;log;".indexOf((";"+s+";").toLocaleLowerCase() )<0)
{
alert("文件扩展名必须为"gif;jpg;png;wav;mid;mp3;zip;rar;lha;avi;mpg;mpe;ppt;doc;xls;txt;js;css;exe;swf;pdf;htm;xsl;xml;mdb;log"!")
      document.Upload.Image.focus();
      return(false)
}
立刻del它,再找提交的路径
method=post encType=multipart/form-data>
这个时候我们要注意,在上传文件中,一直有一个判断权限的function,这就意味着,如果想提交到远程的网站,我们不但要在action后面输入网络上的Update.asp的绝对路径,还要具有远程程序运行的权限,也就是说我们在运行本机的程序之前,要登录一下远程这个管理系统的演示,要不然,我们是没有权限上传的。
好了,修改完毕,终于到了最后一步,打开我们本机的程序,运行,打开远程演示程序运行,点击我们这里的某个目录下的上传,然后去到远程程序的相应目录下找,哈哈,真的上传了一个asp文件,不过文件名变得稀奇古怪,但事扩展名还是asp,后面一个下载的按钮,点击一下,海洋2005的界面就立刻出来了。

评论
  • 暂未有评论提交。
标 题:
 
姓 名:
 
主 页:

验证码:

评论:
 

Because of the cache,you may see your comments several minutes later.