湖盟客服 发表于 2013-06-08 13:52:41

Aspcms漏洞分析——湖盟云安全分析

Aspcms是由上谷网络开发的全新内核的企业建站系统,能够胜任企业多种建站需求,并且是完全开源的一套CMS建站系统,在国内用户量众多。上个月aspcms修复了很多安全漏洞,这其中主要的包括SQL注入,COOKIE欺骗和后台的越权访问等。最近湖盟云安全专家对其做了详细分析,总结了其漏洞出现的原因主要有以下两点 一.权限验证的脆弱性Aspcms在处理会员登陆,管理员登陆,及所有权限验证时都采用了COOKIE验证,我们知道COOKIE是保存在客户本地终端上的数据,用户可以随意伪造。如果知道其加密方式,再构造其管理员cookie,即可获取管理权限。验证管理员用的了CheckAdmin函数,其代码如下Function CheckAdmin()if isnul(rCookie("adminName")) then alertMsgAndGo"您还没有登陆","/"elseDim PermissionsPermissions=rCookie("Permissions")if Permissions<>"all" and isnul(Permissions) thenalertMsgAndGo"您没有访问权限","-1"else if not instr(lcase(Permissions),lcase(getPageName))>0 and Permissions<>"all" and not instr(lcase(getPageName),lcase("AspCms_ManagerEditPass"))>0 thenalertMsgAndGo"您的访问权限不够","-1"end ifend ifend ifEnd Function从cookie读取adminName和Permissions,adminName不为空是即通过,Permissions不为空并且等于all时获得所有权限。那么我们添加两个cookie adminName = adminPermissions = all即可获得后台管理权限。二.处理SQL注入的缺陷Aspcms在过滤SQL注入时,某个关键的函数存在缺陷,我们可以通过构造SQL,即可绕过其过滤实现注入。其关键函数preventSqlin代码如下Function preventSqlin(content)dim sqlStr,sqlArray,i,speStrsqlStr="<|>|%|%27|'|''|;|*|and|exec|dbcc|alter|drop|insert|select|update|delete|count|master|truncate|char|declare|where|set|declare|mid|chr"if isNul(content) then Exit FunctionsqlArray=split(sqlStr,"|")for i=lbound(sqlArray) to ubound(sqlArray)if instr(lcase(content),sqlArray(i))<>0 thenselect case sqlArray(i)case "<":speStr="<"case ">":speStr=">"case "'","""":speStr="""'case ";":speStr=";"case else:speStr=""end selectcontent=replace(content,sqlArray(i),speStr,1,-1,1) end ifnextpreventSqlin=contentEnd Function如果用户提交的信息里含有sqlStr中定义的关键字,就将其替换掉。但是注意,这里仅仅替换了一次,那么我们可以构造类似于sel(and)ect 的SQL,通过过滤函数替换and之后即可实现注入。                                              湖盟云安全平台(my.hnhack.com):国际知名的网站安全保护、网站性能提升平台 ,通过湖盟云平台分布在世界各地的节点,可以有效提高网站访问量,据统计,使用了湖盟云平台的网站,能有效解决CC、DDOS 各个方面的安全问题。

夕颜Z 发表于 2025-11-11 07:55:52

内容很干货,没有多余的废话,值得反复看
页: [1]
查看完整版本: Aspcms漏洞分析——湖盟云安全分析