网站地图    收藏   

主页 > 后端 > 网站安全 >

老树开花 一个js函数引发的命案 - 网站安全 - 自

来源:自学PHP网    时间:2015-04-17 14:11 作者: 阅读:

[导读] 很多网站系统把一些功能在客服端执行(javascript),而服务端没有相应的验证,从而被非法利用。本文就是一个js函数使用不当,导致网站以及整个服务器沦陷的案例。 前端漏洞挖掘最新安...


很多网站系统把一些功能在客服端执行(javascript),而服务端没有相应的验证,从而被非法利用。本文就是一个js函数使用不当,导致网站以及整个服务器沦陷的案例。
                     前端漏洞挖掘
最新安全测试一个站 旁注扫出一个www.xxx.com/Utility/UploadFile/FileList.asp
 
 
 


                                    图一
打开一看 貌似是一个n年前的老洞,如图一,利用iis解析漏洞的, 新建一个1.asp的目录
在上传图片木马,但是这个站补丁打了.....不过这个编辑器功能很强大,看能不能找到点其他可以利用的地方,习惯性的查看源码。看到一段Javascript,目测有猫腻。
<tr onMouseOver="menumouseover(this)" onMouseOut="menumouseout(this)">
      <td><input name="selFolder" type="checkbox" id="selFolder" value="D:\website9\ www.2cto.com \UpFile\1" ">
            <a href="javascript:transferFolder('/UpFile/1');">
            <img src="dir.gif" width="17" height="14" border="0" align="absmiddle">1</a>
这个是点击图一中的文件夹的js源码,爆出绝对路径,可能有用,然后又看到一个强大的js函数transferFolder(),经过测试这个函数是点击击编辑器中的文件夹js是向服务端发送需要浏览文件夹,然后asp服务器返回传回文件夹的文件列表,以浏览文件。
//改变当前文件夹
function transferFolder(f)
{
          document.formList.fder.value=f
          document.formList.submit();
}
看transferFolder函数源码, 每个载入浏览器的HTML 文档都会成为Document 对象, 使我们可以从脚本中对HTML 页面中的所有元素进行访问。把传入的文件夹赋值给Document.formList用来操作formList表单,formList 和fder为何物?
<form  margin-bottom: 0; overflow:auto;" name="formList" method="post" action="">
<input name="rootFder" type="hidden" id="rootFder" value="/UpFile">
<input name="fder" type="hidden" id="fder" value="/UpFile">
还是目测fromList是浏览文件的表单fder则是需要浏览的文件夹,由transferFolder函数赋值,测试下这个函数是否可以传入任意浏览服务端文件夹,由于需要经常改代码,换了个opera浏览器,原来的transferFolder参数如下。
 
transferFolder('/UpFile/1');
 
传入transferFolder(‘/Utility/UploadFile’); (这个目录绝对存在),
猛烈的点击…..悲剧了!!!什么都没有,实有不甘,继续目测之.
 
<input name="rootFder" type="hidden" id="rootFder" value="/UpFile">
<input name="fder" type="hidden" id="fder" value="/UpFile">
 rootFder是根目录,而fder 是当前目录,这里需要人工修改,遂把/UpFile 改为/Utility 
 
 
              图二
改写
 
             图三
再次猛烈点击,奇迹般的出现了
 



                                图四
如图四 ¥#*&¥#@!* 无比鸡动!!!,这个函数果然有鬼,接下来就是扩大战果。
                          JS函数利用
 
 
                               图五
整理一下思路, 如图五所示,编辑器可以重命名,通过transferFolder函数可以遍历整个网站目录文件,如果有权限还可以下载服务端的文件(有权限重命名),搞清此套程序的目录结构,如果是数据库access 直接下载数据文件,进后台再说,是sql server 看1433能不能利用,干!!!!
为了搞清此套系统的目录结构,不久拿下一个和这个系统的其他网站的webshell,如图七。
 
                             图六
在System\Config.asp 找到其配置
 
                              图七
 
看到图七,我很欣慰,回到安全监测的那个站,通过transferFolder()这淫荡的函数,找到Config.asp
 

 
                               图八
 
 如图八 果断改为txt   直接访问…………………..
 
                      图九
        
人品来了….如图九,神一般sa!!!!!接下来就是传说中1433 端口提权,毫无亮点安全监测完成….
                     后记
这个程序有多处致命漏洞,包括fck编辑器和以前的老漏洞,还有本文的js函数服务端缺乏验证导致服务端任意文件可下载 查看(有的无权限),网上使用的众多,我们程序猿除了需要注sql,编辑器等服务端的代码安全,也需要关注像javascript这样的前端语言,因为用户随意查看和修改前端的源码,这个更加危险!!!
笔者能力有限,文中难免有纰漏, 恐贻笑于大方之家,万望海涵…
 

Author:Yaseng www.yaseng.me

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论