利用别人的程序二次入侵——攻破上传时候js判断文件类型
时间:2005/11/7 11:33:34
阅读:1095
今天早上,突然收到几年不见的朋友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它,再找提交的路径