phpdisk是目前互联网最大的网盘开源系统,采用PHP语言开发,mysql数据库架构,我们SINE安全在对其网站安全检测以及网站漏洞检测的同时,发现该网盘系统存在严重的sql注入攻击漏洞,危害性较高,可以直接获取网站的管理员账号密码,利用默认后台地址登录,可以直接获取webshell权限。
目前phpdisk最新版本为7.0版本,该网站系统可以用于公司办公,企业内部文件共享,文档存储,比传统的FTP软件更为直观,操作,简单方便,快捷,用户上传文件格式可以后台设置,人性化,满足了很多企业以及个人用户的青睐,使用的人越多,针对于该网站的漏洞挖掘也会越来越多,很容易遭受到攻击者的攻击。关于该网站的sql注入攻击漏洞的详情,我们SINE安全来详细的跟大家讲解一下:
SQL注入漏洞详情
phpdisk有多个版本,像gbk版本,utf8版本,在代码当中都会相互转换代码的功能,在对代码进行转化的同时多多少少会存在漏洞,该sql注入漏洞产生的原因就在这里,我们对代码进行安全审计后发现编码转换调用的是conver_str函数,大部分的网站对编码的转换都调用这个参数,在进行转化的时候进行了多次转义操作,我们追踪代码发现iconv存在sql宽字节注入漏洞,代码截图如下:
另外的一处sql注入漏洞是在代码文件里,根目录下的ajax.php文件。我们来看下代码:
本身该代码已经使用了全局变量的sql过滤系统,对一些sql注入语句进行了安全过滤与拦截,一般性的sql注入攻击都不会成功,但是经过我们的安全检测与绕过,可以直接将SQL注入语句植入到网站当中,并从后端执行数据库的查询操作,使用加密对其进行sql攻击。
通过网站的sql注入漏洞我们可以直接获取网盘的管理员账号密码,获取到的是md5值,针对于md5值我们对其解密,并利用默认的后台地址,登录进去,通过上传文件,我们进一步的对网站进行上传webshell获取更高的管理员权限。
如何防止sql注入攻击呢? 修复网站的漏洞
对网站前端输入过来的值进行安全判断,尤其编码转换这里,确认变量值是否存在,如果存在将不会覆盖,杜绝变量覆盖导致掺入恶意构造的sql注入语句代码在GET请求,以及POST请求里,过滤非法字符的输入。 ‘分号过滤 –过滤 %20特殊字符过滤,单引号过滤,%百分号, and过滤,tab键值等的的安全过滤。对加密的参数进行强制转换并拦截特殊的语句,该phpdisk网站系统已经停止更新,如果对代码不是太懂的话,建议找专业的网站安全公司来处理解决网站被sql注入攻击问题,让安全公司帮忙修复网站的漏洞,像Sinesafe,绿盟那些专门做网站安全防护的安全服务商来帮忙。还有一点就是,如果实在不知道该怎么修复漏洞,直接将网站的后台地址改掉,改的复杂一些,即使攻击者破解了admin的账号密码,也登录不了后台