网站安全检测之PHP代码的后台安全绕过漏洞

       

        针对于PHP代码的开发的网站,最近在给客户做网站安全检测的同时,大大小小的都会存在网

站的后台管理页
面被绕过并直接登录后台的漏洞,而且每个网站的后台被绕过的方式都不一样,根

据SINE安全渗透测试多年来
经验,来总结一下网站后台绕过的一些详情,以及该如何去防范后台被

绕过,做好网站的安全部署。

 
 
后台验证码缺乏安全验证
 
 
比如在axublog程序中,网站后台存在一个验证管理员登录的一个函数chkadcookie()。但是在网

站后台的
ad/art.php中并没有chkadcookie()此验证函数,因而就造成了普通访问条用户可以越权

访问。
这种漏洞的原理也比较简单,一般情况下是经验不足的开发者漏掉了验证函数。Sine安

全公司是
一家专注于:服务器安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服

务于
一体的网络安全服务提供商。
 
 
后台验证代码没有做到绝对的安全验证
 
axublog后台验证函数绕过
 
后台登录的验证方式
 
在axublog中的后台验证函数是chkadcookie(),代码如下图所示: 
 

 
通过对网站代码的详细安全检测,发现了问题中只有$date我们是无法知道,而UA和

REMOTE_ADDR都是客户
端可控的验证逻辑是如果在COOKIE中出现了在txtchkad.txt中的值,

那么就认为是登录的。这样的验证逻
辑明显存在很大的漏洞问题。
 
如何绕过后台验证?
 
只需要将COOKIE中的chkad设置为_就可以绕过后台的登录了。
 
 
网站安全之变量覆盖漏洞详情:
 
beescms的后台验证函数绕过
 
后台验证方式
 
检查登录的函数is_login()的代码为如下图所示:
 

 
上述的代码中并没有对$_POST使用fl_value()函数进行过滤,但又使用了extract()这样的函数,

所以就可以通过发送POST参数覆盖掉SEESION中的值,从而绕过验证了。
如何绕过后台验证?

Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,

安全服务于一体的网络安全服务提供商。
 
绕过方式很简单,访问随便一个页面,发送POST请求包如下:
index.php
 
POST:_SESSION[login_in]=1&_SESSION[admin]=1&_SESSION[login_time]=99999999999
 
此时就成功地创建了SESION变量,包括$SESSION[loginin]=1、$_SESSION[admin]=1、

SESSION[logintime]=99999999999。 
之后访问管理员页面,就可以成功地登录后台了。

 
 
针对于以上两个绕过网站后台的漏洞,可以看出一个是验证码,一个是变量覆盖漏洞,关于这

2个漏洞的修复方法,
根据现有的代码,进行安全过滤加强逻辑判断,以及函数的赋值安全检查。
 
分享: