很多网站系统把一些功能放在客服端执行(javascript),而服务端没有相应的验证, 从而被非法利用。本文就是一个 js 函数使用不当,导致网站以及整个服务器沦陷的案例。 前端漏洞挖掘 最新安全测试一个站 旁注扫出一个 www.xxx.com/Utility/UploadFile/FileList.asp ![]()
<tr onMouseOver="menumouseover(this)" onMouseOut="menumouseout(this)"> <td><input name="selFolder" type="checkbox" id="selFolder" value="D:\website9\www.xxx.com\UpFile\1" ">
<img src="dir.gif" width="17" height="14" border="0" align="absmiddle">1</a> 函数 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 ![]() 改写 ![]() 再次猛烈点击,奇迹般的出现了 ![]() 如图四 无比鸡动!!!,这个函数果然有鬼,接下来就是扩大战果。 整理一下思路先,如图五所示,编辑器可以重命名,通过transferFolder 函数可以遍历 整个网站目录文件,如果有权限还可以下载服务端的文件(有权限重命名),搞清此套程序的 目录结构,如果是数据库access 直接下载数据文件,进后台再说 ,是 sql server 看1433 能不能利用,干!!!! 为了搞清此套系统的目录结构,不久拿下一个和这个系统的其他网站的webshell,如图 整理一下思路先,如图五所示,编辑器可以重命名,通过transferFolder 函数可以遍历 整个网站目录文件,如果有权限还可以下载服务端的文件(有权限重命名),搞清此套程序的 |