主题 : 确保安全 Web开发中请勿过分依赖Javascript
金秋果實豐 金風吹黃葉
级别: 七朵秋菊
UID: 33333
精华: 0
发帖: 7917
威望: 34658 点
无痕币: 605 WHB
贡献值: 0 点
在线时间: 3192(时)
注册时间: 2007-12-25
最后登录: 2022-08-05

0 确保安全 Web开发中请勿过分依赖Javascript

转自:oldjun.com

Javascript是客户端语言,javascript为web应用带来了很多优势,因此很多web程序开发者非常依赖javascript,从简单的判断到ajax,javascript无所不在,然而过分依赖javascript,您的web程序可能出现极大的安全隐患。下面从实际情况讲讲过分依赖javascript所带来的问题:

1、upload时的javascript判断,这个是为大家所熟知的漏洞,早年的asp程序基本都有这个问题,即在上传文件的时候,只是客户端判断文件,而真正处理上传的服务器脚本没有判断,于是大家可以自己写个form上传可执行文件;与此类似的是注册的时候判断注册的信息是否符合要求,单靠javascript是不行的;

2、ajax里的注入,ajax非常强大,在web2.0里用的很广泛,但太多的ajax程序的服务端文件存在注入,虽然不是一眼就能看到的注入点,但仔细看看源码,可以很容易的找到提交点(注入点);

3、下面谈的是本文产生的重点,不仔细看看,程序员都会觉得这程序没问题!

先看一段asp代码:

<!--#include file="../Inc/Conn.asp"-->
<%
Dim StarTime,Style_Copy
Dim AdminName
startime=timer()
AdminName=replace(session("AdminName"),"'","")
if AdminName="" then
%>
<script language='javascript'>top.location='Login.asp';</script>
<%
end if
%>
这是某某网站管理系统的后台验证页面,包含在后台的每个页面中,也就是访问每一个后台页面都先通过它判断session。

当初测试这个系统的时候,我感觉很安全,因为不存在注入点,找不到可以利用的地方,后台密码也猜不出,测试了好久,仍找不到拿下的办法。但无意中我关闭了浏览器的脚本执行,发现访问admin/default.asp的时候可以直接进入了,与登陆了没有两样,于是轻松拿下shell。然后我翻翻源码看了看,不禁无语,其实这里逻辑上没有问题的,唯一的问题是过分依赖了javascript。

Javascript是客户端语言,我可以执行它也可以不执行。如上代码执行了才返回登陆页面,而如果不执行,则程序继续往下走,这段代码可以无视了...于是程序员知道了,少加了个response.end,或者把js换成response.redirect...

ASPX与PHP也一样,经常能发现这个有点无语的问题;不过问题最严重的是JSP的站,JSP系统大多存在这个问题,开发JSP的程序员大多喜欢用javascript(也许因为js与jsp本是一家),前段时间检测了两个国内的不开源的JSP系统(一个是门户站,一个是IDC站,欢迎两站点的开发人员联系我:www.oldjun.com),两个站均存在滥用javascript导致可以随便进系统后台,而后台代码的安全性一般比较薄弱,基本上都可以注入。下面给出某个系统的部分代码(check.jsp,后台所有文件都包含它,用来检测session),与上面的asp语句如出一辙:

<%
    if(session.getValue("Site_Id")==null)
    {
%>
<script language="javascript">top.window.location.href="/index.html";
</script>
<%
    }
%>
总结一下:网站渗透的时候,禁用浏览器的脚本也许会有意外的发现。韩国站大多喜欢用javascript+框架结构,只允许大家访问main.html(htm),如果禁用了js,则可以无视这框架的存在,随意检测系统问题了。开发网站的时候,别只图网站的功能而忽视网站的安全,审核代码的时候,也思考一下,假如这段js不存在,网站是怎么运行的,千万别过分依赖javascript。
秂生完整在于學繪勇敢麵對人生悲劇而繼續活下去
Total 0.091222(s) query 3, Time now is:03-29 03:52, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛